Normalerweise ;
kombiniere ich mehr als einen Befehl in einer Zeile, aber einige Leute bevorzugen &&
. Gibt es einen Unterschied? Zum Beispiel cd ~; cd -
und cd ~ && cd -
scheint das Gleiche zu machen. Welche Version ist portabler, z. B. wird sie von einer Bash-Teilmenge wie der Android-Shell oder so unterstützt?
bash
shell
syntax
multiplatform
Psihodelia
quelle
quelle
;
eine oder der&&
eine? Oder meinst du beides?&&
.Ich benutze
&&
da vor langer Zeit am nahe gelegenen Computer:aber nicht geholfen ...;)
cd /tnp/test && rm -rf *
ist sicher... ;)quelle
rm -rf /tnp/test
rm /tnp/test/ -rf
zu verhindern, dass tödliche Fehlklicks eintretenIn
cmd1 && cmd2
,cmd2
wird nur ausgeführt , wenncmd1
erfolgreich ist (0 zurück).In
cmd1 ; cmd2
,cmd2
wird in jedem Fall ausgeführt.Beide Konstrukte sind Teil einer POSIX-kompatiblen Shell.
quelle
&&
bedeutet, den nächsten Befehl auszuführen, wenn der vorherige mit dem Status 0 beendet wurde. Im Gegenteil, verwenden Sie||
dh, um ausgeführt zu werden, wenn der vorherige Befehl mit einem Status ungleich 0 beendet;
wird.Sehr nützlich, wenn Sie eine bestimmte Aktion ausführen müssen, je nachdem, ob der vorherige Befehl OK ist oder nicht.
quelle
Befehle, die durch getrennt
;
sind, werden unabhängig von ihrem Abschlussstatus nacheinander ausgeführt.Mit
&&
wird der zweite Befehl nur ausgeführt, wenn der erste erfolgreich abgeschlossen wurde (gibt den Exit-Status 0 zurück).Dies wird in der Bash-Manpage unter behandelt
Lists
. Ich würde erwarten, dass jede Unix-ähnliche Shell diese beiden Operatoren unterstützt, aber ich weiß nicht speziell über die Android-Shell Bescheid.quelle
&&
ermöglicht die bedingte Ausführung, während;
immer der zweite Befehl ausgeführt wird.In Beispiel
command1 && command2
,command2
wird nur ausgeführt werden, wenncommand1
mit Beendigungexit 0
signalisiert alles gut gegangen ist, während incommand1 ; command2
dem zweiten Befehl wird unabhängig davon immer dann ausgeführt werden , was das Ergebnis warcommand1
.quelle
&& ist logisch UND in Bash. Bash hat eine Kurzschlussauswertung des logischen UND. Diese Redewendung ist eine einfachere Möglichkeit, Folgendes auszudrücken:
Während die ; Version ist nur:
quelle