Kommando-Trenner: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
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…“ |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
= Kommando-Trenner = | = Kommando-Trenner = | ||
*Kommando-Trenner bestimmen, wie mehrere Befehle in einer Zeile ausgeführt werden. | * 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. | * 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 | * Damit lassen sich einfache logische Abläufe direkt in einer Befehlszeile darstellen. | ||
== Grundprinzip == | == Grundprinzip == | ||
*Bash-Kommandos liefern nach ihrer Ausführung einen Rückgabewert (Exit-Status). | * Bash-Kommandos liefern nach ihrer Ausführung einen Rückgabewert (Exit-Status). | ||
*Dieser Exit-Status entscheidet, ob nachfolgende Befehle mit | * Dieser Exit-Status entscheidet, ob nachfolgende Befehle mit ';', '&&' oder '||' ausgeführt werden. | ||
== Überblick == | == Überblick == | ||
| Zeile 15: | Zeile 15: | ||
| ; || Nacheinander || Immer, unabhängig vom Ergebnis | | ; || Nacheinander || Immer, unabhängig vom Ergebnis | ||
|- | |- | ||
| && || UND-Verknüpfung || Nur wenn das vorherige Kommando erfolgreich war | | && || UND-Verknüpfung || Nur wenn das vorherige Kommando erfolgreich war | ||
|- | |- | ||
| | | || || ODER-Verknüpfung || Nur wenn das vorherige Kommando fehlschlug | ||
|} | |} | ||
== Beispiel – Semikolon (;) == | == Beispiel – Semikolon (;) == | ||
* | * ls /etc ; echo "Liste fertig" ; pwd | ||
Ausgabe: | Ausgabe: | ||
(Inhalt von /etc) | |||
Liste fertig | |||
thomas | /home/thomas | ||
== Beispiel – UND-Verknüpfung (&&) == | == Beispiel – UND-Verknüpfung (&&) == | ||
* mkdir /tmp/test && echo "Verzeichnis wurde angelegt." | |||
* mkdir /tmp/ | |||
== Beispiel – ODER-Verknüpfung (||) == | == Beispiel – ODER-Verknüpfung (||) == | ||
* cd /nichtda || echo "Verzeichnis existiert nicht." | |||
* cd /nichtda || echo " | |||
== Kombination von && und || == | == Kombination von && und || == | ||
* [ -f /etc/passwd ] && echo "Datei existiert" || echo "Datei fehlt" | |||
* [ -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" | |||
echo | |||
Ausgabe: | |||
Host erreichbar | |||
== Hinweise == | == 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 | * Der Exit-Status ('$?') ist wichtig für automatisierte Abläufe und Skripte. | ||
== Aufgaben == | == Aufgaben == | ||
* Führen Sie drei Kommandos in einer Zeile | * Führen Sie drei Kommandos (date, whoami, pwd) in einer Zeile aus. | ||
* Erstellen Sie eine | * Erstellen Sie eine Kommando-Kette, die ein Verzeichnis anlegt und bei Erfolg eine Meldung ausgibt. | ||
* Erstellen Sie eine | * Erstellen Sie eine zweite Kette, die bei Fehlschlag eine Fehlermeldung ausgibt. | ||
* Kombinieren Sie ''' | * 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. | |||
Aktuelle Version vom 17. Oktober 2025, 15:54 Uhr
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.