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…“) |
|||
| 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.