Einfache Verzweigungen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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.