Einfache Verzweigungen

Aus Xinux Wiki
Version vom 17. Oktober 2025, 15:18 Uhr von Thomas.will (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= Verzweigungen = == Kurzlogische Verzweigungen (&& und ||) == *Kurzlogische Verzweigungen nutzen den Rückgabewert (Exit-Status) eines Befehls, um Folgeakti…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Verzweigungen

Kurzlogische Verzweigungen (&& und ||)

  • Kurzlogische Verzweigungen nutzen den Rückgabewert (Exit-Status) eines Befehls, um Folgeaktionen direkt in einer Zeile auszuführen.*
  • Dadurch können einfache Prüfungen und Reaktionen kompakt geschrieben werden, ohne die if-Struktur zu verwenden.*
Grundprinzip
  • && (UND): führt den folgenden Befehl nur aus, wenn der vorherige erfolgreich war (Exit-Status 0).
  • || (ODER): führt den folgenden 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
  • echo $?
 zeigt den Exit-Status des zuletzt ausgeführten Befehls an.  
 0 = wahr, ≠0 = falsch  
Hinweise
  • Besonders nützlich für Einzeiler und kurze Bedingungen.
  • Bei komplexeren Bedingungen sollte die if-Struktur verwendet werden.
  • Die logischen Operatoren basieren ausschließlich auf dem Exit-Status des vorherigen Kommandos.

Strukturelle Verzweigungen mit if / elif / else

  • Mit if können ganze Befehlsblöcke abhängig von Bedingungen ausgeführt werden.*
  • Die Bash prüft die angegebene Bedingung – ist sie wahr (Exit-Status 0), werden die nachfolgenden Befehle im Block ausgeführt.*
Syntax
if [ Bedingung ]; then
  Befehle
elif [ andere Bedingung ]; then
  Befehle
else
  Befehle
fi
Einfaches Beispiel
if [ "$USER" = "root" ]; then
  echo "Administrator"
else
  echo "Normaler Benutzer"
fi
Ausgabe:  
 Normaler Benutzer  
Beispiel mit elif
if [ "$USER" = "root" ]; then
  echo "Administrator"
elif [ "$USER" = "thomas" ]; then
  echo "Willkommen Thomas"
else
  echo "Unbekannter Benutzer"
fi
Ausgabe:  
 Willkommen Thomas  
Hinweise
  • Jede Bedingung liefert einen Exit-Status, der von if ausgewertet wird.
  • Der Befehl nach dem ersten zutreffenden Vergleich wird ausgeführt, danach verlässt die Shell die Struktur.
  • Mehrere elif-Zweige sind möglich, aber nur ein else-Zweig.
  • Die Syntax then kann auch in einer neuen Zeile oder mit Semikolon ; nach der Bedingung stehen.

Aufgaben

  • Erstellen Sie eine Bedingung, die prüft, ob eine Datei /etc/passwd existiert, und geben Sie eine passende Meldung aus.*
  • Schreiben Sie eine Bedingung, die prüft, ob eine Variable leer ist oder nicht, und geben Sie entsprechend „leer“ oder „nicht leer“ aus.*
  • Erstellen Sie eine if-Struktur, die zwischen drei möglichen Benutzernamen unterscheidet (root, thomas, andere).*
  • Bauen Sie die erste Aufgabe als Einzeiler mit && und || um.*