Bash Befehle verknüpfen

Was íst der Unterschied zwischen “&” “&&” “|” und “||”

&

einfache Verkettung Befehl2 wird unabhänig von Befehl1 ausgegeben

Syntax

befehl1 & befehl2

Beispiel:

echo Hallo! & echo und Tschüss!

Ausgabe

Hallo!
und Tschüss!

|

Pipe dient dazu den 2ten Befehl auf den ersten anzuwenden

Syntax

befehl1 | befehl2

Beispiel:

ipkg list | grep "less - 444"

Ausgabe von IPKG list zeigt 100 Pakete aber der zusatz mit | grep “less – 444” zeigt dann nur noch die Ergebnisse welche exakt den String in den “” enthalten

Ausgabe

less – 444-1 – Less file browser

&&

bedingte Befehlsverkettung: der zweite Befehl wird nur ausgeführt, wenn der erste Befehl erfolgreich war

Syntax

befehl1 && befehl2

Beispiel:

Ping an Google => Erfolgreich Meldung sende an /dev/null und zeige Ping Erfolgreich

ping -c1 www.google.de > /dev/null && echo Ping erfolgreich
Ping erfolgreich

||

bedingte Befehlsverkettung: der zweite Befehl wird nur ausgeführt, wenn der erste Befehl NICHT erfolgreich war

Syntax

befehl1 || befehl2

Beispiel:

Ping an Google wenn erfolgreich mache nichts, wenn nicht erfolgreich dann schreibe Internet down

ping -c1 www.google.de > /dev/null || echo Internet down

ping -c1 www.google.de > /dev/null || echo Internet down
ping: www.google.e: Name or service not known
Internet down

%d bloggers like this: