Kommando-Trenner

Aus Xinux Wiki
Version vom 17. Oktober 2025, 15:40 Uhr von Thomas.will (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „= Kommando-Trenner = *Kommando-Trenner bestimmen, wie mehrere Befehle in einer Zeile ausgeführt werden.* *Sie steuern, ob ein nachfolgender Befehl immer, nur…“)
(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 formulieren.*

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 (Exit-Code = 0)
\| ODER-Verknüpfung Nur wenn das vorherige Kommando fehlschlug (Exit-Code ≠ 0)

Beispiel – Semikolon (;)

  • Das Semikolon trennt Kommandos unabhängig voneinander.*
  • Jeder Befehl wird ausgeführt, egal ob der vorherige erfolgreich war oder nicht.*
  • date ; hostname ; whoami
Ausgabe:
 Fri Oct 17 19:14:27 CEST 2025  
 orville  
 thomas  

Beispiel – UND-Verknüpfung (&&)

  • Mit && wird der zweite Befehl nur ausgeführt, wenn der erste erfolgreich war.*
  • mkdir /tmp/demo && echo "Verzeichnis wurde erstellt."
Ausgabe:
 Verzeichnis wurde erstellt.  
mkdir /tmp/demo && echo "ok"
ls /nichtda && echo "Dieser Text erscheint nicht"

Beispiel – ODER-Verknüpfung (||)

  • Mit || wird der zweite Befehl nur ausgeführt, wenn der erste fehlschlägt.*
  • cd /nichtda || echo "Fehler: Verzeichnis existiert nicht."
Ausgabe:
 Fehler: Verzeichnis existiert nicht.  
ping -c1 192.0.2.1 > /dev/null 2>&1 || echo "Host nicht erreichbar"

Kombination von && und ||

  • Beide Operatoren lassen sich kombinieren, um kompakte Prüfungen zu schreiben.*
  • [ -f /etc/passwd ] && echo "Datei existiert" || echo "Datei fehlt"
[ -d /etc ] && echo "Verzeichnis vorhanden" || echo "nicht vorhanden"

Rückgabewert prüfen

  • Nach jedem Befehl kann der Exit-Status mit echo $? ausgegeben werden.*
  • Ein Wert von 0 bedeutet Erfolg, jeder andere Wert steht für einen Fehler.*
ls /etc > /dev/null
echo $?
0

ls /nichtda > /dev/null
echo $?
2

Hinweise

  • Verwenden Sie ; für unabhängige Befehle.
  • Nutzen Sie && für Befehle, die nur bei Erfolg folgen sollen.
  • Nutzen Sie || für Befehle, die nur bei Fehler folgen sollen.
  • Kombinierte Ausdrücke mit && und || ersetzen in vielen Fällen einfache if-Konstruktionen.
  • Der Rückgabewert (Exit-Code) ist entscheidend für das Verhalten der Trenner.

Aufgaben

  • Führen Sie drei Kommandos in einer Zeile mit ; aus.
  • Erstellen Sie eine Befehlskette mit &&, die bei Erfolg eine Meldung ausgibt.
  • Erstellen Sie eine Befehlskette mit ||, die bei Fehler eine Meldung ausgibt.
  • Kombinieren Sie *