488 Stimmen

Was ist der Zweck von "&&" in einem Shell-Befehl?

Soweit ich weiß, ist die Verwendung von & nach dem Befehl ist für die Ausführung im Hintergrund.

Beispiel für & Verwendung: tar -czf file.tar.gz dirname &

Aber wie wäre es mit && ? ( Beispiel )

12voto

Nick Punkte 1361

Es soll eine zweite Anweisung ausgeführt werden, wenn die erste Anweisung erfolgreich beendet wurde. Wie eine if-Anweisung:

 if (1 == 1 && 2 == 2)
  echo "test;"

Zuerst wird geprüft, ob 1==1 ist, wenn das zutrifft, wird geprüft, ob 2==2 ist.

9voto

alno Punkte 3496

Siehe das Beispiel:

mkdir test && echo "Something" > test/file

Die Shell wird versuchen, das Verzeichnis test und dann, nur wenn sie erfolgreich war wird versuchen, darin eine Datei zu erstellen.

Sie können also eine Folge von Schritten unterbrechen, wenn einer von ihnen fehlgeschlagen ist.

7voto

Xiaonin Li Punkte 71

command_1 && command_2 Befehl_2 nur ausführen, wenn Befehl_1 erfolgreich ausgeführt wurde.

command_1 || command_2 Befehl_2 nur ausführen, wenn Befehl_1 nicht erfolgreich ausgeführt wurde.

Es fühlt sich ähnlich an, wie eine 'if'-Bedingung in einer gängigen Programmiersprache ausgeführt wird, z. B. in if (condition_1 && condition_2){...} Bedingung_2 entfällt, wenn Bedingung_1 ist false und in if (condition_1 || condition_2){...} Bedingung_2 entfällt, wenn Bedingung_1 ist true . Sehen Sie, das ist derselbe Trick, den Sie auch beim Codieren anwenden :)

1voto

Amin Punkte 11
####################### && or (Logical AND) ######################
first_command="1"
two_command="2"

if [[ ($first_command == 1) && ($two_command == 2)]];then
 echo "Equal"
fi

Wenn das Programm den if-Befehl prüft, erstellt das Programm eine Zahl, die Exit-Code genannt wird. Wenn beide Bedingungen wahr sind, ist der Exit-Code Null (0), andernfalls ist der Exit-Code eine positive Zahl. nur bei der Anzeige von Equal, wenn der Exit-Code Null (0) ist, bedeutet das, dass beide Bedingungen wahr sind.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X