Kommando-Trenner
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…“)
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 *