Kommando-Trenner

Aus Xinux Wiki
Version vom 17. Oktober 2025, 15:54 Uhr von Thomas.will (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Kommando-Trenner

  • Kommando-Trenner bestimmen, wie mehrere Befehle in einer Zeile ausgeführt werden.
  • Sie steuern, ob ein nachfolgender Befehl immer, nur bei Erfolg oder nur bei Fehler ausgeführt wird.
  • Damit lassen sich einfache logische Abläufe direkt in einer Befehlszeile darstellen.

Grundprinzip

  • Bash-Kommandos liefern nach ihrer Ausführung einen Rückgabewert (Exit-Status).
  • Dieser Exit-Status entscheidet, ob nachfolgende Befehle mit ';', '&&' oder '||' ausgeführt werden.

Überblick

Trenner Bedeutung Ausführungsbedingung
; Nacheinander Immer, unabhängig vom Ergebnis
&& UND-Verknüpfung Nur wenn das vorherige Kommando erfolgreich war
ODER-Verknüpfung Nur wenn das vorherige Kommando fehlschlug

Beispiel – Semikolon (;)

  • ls /etc ; echo "Liste fertig" ; pwd
Ausgabe:
 (Inhalt von /etc)
 Liste fertig
 /home/thomas

Beispiel – UND-Verknüpfung (&&)

  • mkdir /tmp/test && echo "Verzeichnis wurde angelegt."

Beispiel – ODER-Verknüpfung (||)

  • cd /nichtda || echo "Verzeichnis existiert nicht."

Kombination von && und ||

  • [ -f /etc/passwd ] && echo "Datei existiert" || echo "Datei fehlt"

Rückgabewert prüfen

  • Der Exit-Status des letzten Kommandos kann mit 'echo $?' angezeigt werden.
  • ls /etc > /dev/null
  • echo $?
0
  • ls /nichtda > /dev/null
  • echo $?
2

Beispiel – kurze logische Kette

  • ping -c1 10.0.0.1 > /dev/null 2>&1 && echo "Host erreichbar" || echo "Host nicht erreichbar"
Ausgabe:
 Host erreichbar

Hinweise

  • ';' – führt Kommandos unabhängig voneinander aus.
  • '&&' – führt das nächste Kommando nur bei Erfolg aus (Exit-Code = 0).
  • '||' – führt das nächste Kommando nur bei Fehler aus (Exit-Code ≠ 0).
  • Diese Operatoren können beliebig kombiniert werden.
  • Der Exit-Status ('$?') ist wichtig für automatisierte Abläufe und Skripte.

Aufgaben

  • Führen Sie drei Kommandos (date, whoami, pwd) in einer Zeile aus.
  • Erstellen Sie eine Kommando-Kette, die ein Verzeichnis anlegt und bei Erfolg eine Meldung ausgibt.
  • Erstellen Sie eine zweite Kette, die bei Fehlschlag eine Fehlermeldung ausgibt.
  • Prüfen Sie nach jedem Befehl den Exit-Status mit 'echo $?'.
  • Kombinieren Sie '&&' und '||' zu einem Ausdruck, der je nach Ergebnis "OK" oder "Fehler" ausgibt.