Ich sehe diese beiden Verwendungszwecke auf Ubuntu "Befehl && Befehl" und "Befehl; Befehl",
zapt-get update && apt-get upgrade
Was würde anders sein, wenn ich benutze apt-get update; apt-get upgrade
?
Ich frage nicht nach dieser spezifischen Verwendung, aber was ist im Allgemeinen der Unterschied zwischen diesen beiden Verwendungen?
& (simple sequencing), && (conditional AND) and || (conditional OR)
.||
auch.Antworten:
&&
ist ein logischer Operator.;
ist eine einfache Sequenzierung.In
cmd1 && cmd2
wird cmd2 nur ausgeführt, wenn cmd1 mit einem erfolgreichen Rückkehrcode beendet wird.Während in
cmd1; cmd2
, wird cmd2 unabhängig vom Exit-Status von cmd1 ausgeführt (vorausgesetzt, Sie haben Ihre Shell nicht so eingestellt, dass sie bei allen Fehlern in Ihrem Skript oder so etwas beendet wird).Aus einem ähnlichen Grund wird cmd2
cmd1 || cmd2
mit dem||
logischen Operator 'OR' nur ausgeführt, wenn cmd1 fehlschlägt (ein Exit-Code ungleich Null wird zurückgegeben).Diese logischen Operatoren werden manchmal in Skripten anstelle einer einfachen if-Anweisung verwendet. Zum Beispiel,
... lässt sich prägnanter erreichen mit:
quelle
Syntax
Befehl2 wird nur dann ausgeführt, wenn der Beendigungsstatus
command1
Null ( true )lautet. Führencommand1
Sie mitanderen Worten aus,und führen Sie dann aus,wenn es erfolgreich istcommand2
.Sowohl Befehl1 als auch Befehl2 werden unabhängig voneinander ausgeführt. Mit dem Semikolon können Sie viele Befehle in einer Zeile eingeben.
Verwandte :
Befehl2 wird nur dann ausgeführt, wenn Befehl1 einen Exit-Status ungleich Null zurückgibt. Führen Sie mit anderen Worten
command1
erfolgreich aus oder führen Sie auscommand2
.Beispiel
&&
Operator:;
Operator:||
Operator:Externe Links
quelle