Einfache Verzweigungen: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „= Verzweigungen = == Kurzlogische Verzweigungen (&& und ||) == *Kurzlogische Verzweigungen nutzen den Rückgabewert (Exit-Status) eines Befehls, um Folgeakti…“) |
|||
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | = Verzweigungen = | + | = Kurzlogische Verzweigungen (&& und ||) = |
| − | + | *Kurzlogische Verzweigungen nutzen den Rückgabewert (Exit-Status) eines Befehls, um Folgeaktionen in einer Zeile auszuführen. | |
| + | *Dadurch können einfache Prüfungen kompakt formuliert werden, ohne die if-Struktur zu verwenden. | ||
| − | * | + | == Grundprinzip == |
| − | * | + | * '''&&''' (UND): führt den nächsten Befehl **nur** aus, wenn der vorherige erfolgreich war (Exit-Status 0). |
| + | * '''||''' (ODER): führt den nächsten Befehl **nur** aus, wenn der vorherige **nicht** erfolgreich war (Exit-Status ≠ 0). | ||
| − | + | == Beispiele == | |
| − | * | + | * [ -f /etc/passwd ] && echo "Datei existiert" |
| − | * | + | Datei existiert |
| + | * [ -d /root ] || echo "Verzeichnis /root existiert nicht" | ||
| + | Verzeichnis /root existiert nicht | ||
| + | * [ "$USER" = "root" ] && echo "Administrator" || echo "Normaler Benutzer" | ||
| + | Normaler Benutzer | ||
| − | + | == Überprüfung des Rückgabewerts == | |
| − | * | + | *Der Rückgabewert des letzten Kommandos kann mit '''echo $?''' ausgegeben werden. |
| − | + | 0 = wahr / erfolgreich | |
| − | + | ≠0 = falsch / Fehler | |
| − | |||
| − | |||
| − | |||
| − | + | == Hinweise == | |
| − | * | + | * Eignet sich für **Einzeiler** und kurze logische Prüfungen. |
| − | + | * Die Auswertung basiert ausschließlich auf dem **Exit-Status**. | |
| − | + | * Für komplexere Abläufe sollte die klassische if-Struktur verwendet werden. | |
| − | + | = Aufgaben zu kurzlogischen Verzweigungen (&& und ||) = | |
| − | |||
| − | |||
| − | |||
| − | == | + | == Dienstprüfung == |
| + | *Prüfen Sie in einem Einzeiler, ob der Dienst ssh läuft, und geben Sie je nach Ergebnis „SSH aktiv“ oder „SSH inaktiv“ aus. | ||
| − | + | == Schreibrechte == | |
| − | * | + | *Überprüfen Sie, ob /tmp für den aktuellen Benutzer beschreibbar ist und geben Sie eine entsprechende Meldung aus. |
| − | + | == Benutzer vorhanden == | |
| − | + | *Prüfen Sie mit einem Einzeiler, ob der Benutzer backup in /etc/passwd existiert. Geben Sie „Benutzer vorhanden“ oder „Benutzer fehlt“ aus. | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | == Datei leer oder nicht == | |
| − | + | *Ermitteln Sie, ob die Datei /var/log/syslog leer ist und geben Sie „leer“ oder „nicht leer“ aus. | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | == Paketprüfung == | |
| − | + | *Überprüfen Sie, ob das Paket curl installiert ist. Geben Sie „curl OK“ oder „curl fehlt“ aus. | |
| − | + | == Portprüfung == | |
| − | + | *Prüfen Sie in einem Einzeiler, ob TCP-Port 22 offen ist und geben Sie eine passende Meldung aus. | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | == Variablenprüfung == | |
| − | + | *Setzen Sie vorab die Variable X=42 und prüfen Sie in einem Einzeiler, ob der Wert größer als 10 ist. Geben Sie „groß“ oder „klein“ aus. | |
| − | + | == Exit-Code prüfen == | |
| − | + | *Führen Sie ./check.sh aus und geben Sie abhängig vom Rückgabewert „OK“ oder „FEHLER“ aus. | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | = | ||
| − | |||
| − | * | ||
| − | |||
| − | |||
| − | |||
Aktuelle Version vom 25. November 2025, 15:33 Uhr
Kurzlogische Verzweigungen (&& und ||)
- Kurzlogische Verzweigungen nutzen den Rückgabewert (Exit-Status) eines Befehls, um Folgeaktionen in einer Zeile auszuführen.
- Dadurch können einfache Prüfungen kompakt formuliert werden, ohne die if-Struktur zu verwenden.
Grundprinzip
- && (UND): führt den nächsten Befehl **nur** aus, wenn der vorherige erfolgreich war (Exit-Status 0).
- || (ODER): führt den nächsten Befehl **nur** aus, wenn der vorherige **nicht** erfolgreich war (Exit-Status ≠ 0).
Beispiele
- [ -f /etc/passwd ] && echo "Datei existiert"
Datei existiert
- [ -d /root ] || echo "Verzeichnis /root existiert nicht"
Verzeichnis /root existiert nicht
- [ "$USER" = "root" ] && echo "Administrator" || echo "Normaler Benutzer"
Normaler Benutzer
Überprüfung des Rückgabewerts
- Der Rückgabewert des letzten Kommandos kann mit echo $? ausgegeben werden.
0 = wahr / erfolgreich ≠0 = falsch / Fehler
Hinweise
- Eignet sich für **Einzeiler** und kurze logische Prüfungen.
- Die Auswertung basiert ausschließlich auf dem **Exit-Status**.
- Für komplexere Abläufe sollte die klassische if-Struktur verwendet werden.
Aufgaben zu kurzlogischen Verzweigungen (&& und ||)
Dienstprüfung
- Prüfen Sie in einem Einzeiler, ob der Dienst ssh läuft, und geben Sie je nach Ergebnis „SSH aktiv“ oder „SSH inaktiv“ aus.
Schreibrechte
- Überprüfen Sie, ob /tmp für den aktuellen Benutzer beschreibbar ist und geben Sie eine entsprechende Meldung aus.
Benutzer vorhanden
- Prüfen Sie mit einem Einzeiler, ob der Benutzer backup in /etc/passwd existiert. Geben Sie „Benutzer vorhanden“ oder „Benutzer fehlt“ aus.
Datei leer oder nicht
- Ermitteln Sie, ob die Datei /var/log/syslog leer ist und geben Sie „leer“ oder „nicht leer“ aus.
Paketprüfung
- Überprüfen Sie, ob das Paket curl installiert ist. Geben Sie „curl OK“ oder „curl fehlt“ aus.
Portprüfung
- Prüfen Sie in einem Einzeiler, ob TCP-Port 22 offen ist und geben Sie eine passende Meldung aus.
Variablenprüfung
- Setzen Sie vorab die Variable X=42 und prüfen Sie in einem Einzeiler, ob der Wert größer als 10 ist. Geben Sie „groß“ oder „klein“ aus.
Exit-Code prüfen
- Führen Sie ./check.sh aus und geben Sie abhängig vom Rückgabewert „OK“ oder „FEHLER“ aus.