GNU/Linux >> LINUX-Kenntnisse >  >> Linux

'&&' vs. '&' mit dem 'test'-Befehl in Bash

& führt einen Befehl im Hintergrund aus und gibt unabhängig von seinem Status 0 zurück.

Aus der Manpage:

Wird ein Befehl durch den Kontrolloperator &beendet, führt die Shell den Befehl im Hintergrund in einer Subshell aus. Die Shell wartet nicht auf das Ende des Befehls und der Rückgabestatus ist 0. Durch ein; werden sequentiell ausgeführt; Die Shell wartet darauf, dass die einzelnen Befehle der Reihe nach beendet werden. Der Rückgabestatus ist der Exit-Status des zuletzt ausgeführten Befehls.


Sehen Sie sich an, was Ihre Befehle sind:

test -x examples.desktop  && echo $?

Prüfen Sie also, ob examples.desktop ausführbar ist und wenn ja, dann führe echo $? aus .

test -x examples.desktop  & echo $?

bedeutet prüfen, ob examples.desktop ist im "Hintergrund" lauffähig. Führen Sie dann echo $? aus .


Die Bedeutung von && und & sind grundsätzlich verschieden.

  • Was ist && in Bash? In Bash – und vielen anderen Programmiersprachen – && bedeutet „UND“. Und in einem Befehlsausführungskontext wie diesem bedeutet es Elemente sowohl links als auch rechts von && sollten in diesem Fall nacheinander ausgeführt werden.
  • Was ist & in Bash? Und eine einzelne & bedeutet, dass die vorhergehenden Befehle – unmittelbar links von & —sollte einfach im Hintergrund laufen.

Betrachten Sie also Ihr Beispiel:

[email protected]:~$ test -x examples.desktop  && echo $?
[email protected]:~$ test -x examples.desktop  & echo $?
[1] 2992
0

Der erste Befehl – ​​so wie er strukturiert ist – gibt tatsächlich nichts zurück. Aber der zweite Befehl gibt ein [1] 2992 zurück in dem der 2992 bezieht sich auf die im Hintergrund laufende Prozess-ID (PID) und den 0 ist die Ausgabe des ersten Befehls.

Da der zweite Befehl gerade test -x examples.desktop ausführt im Hintergrund passiert es ziemlich schnell, also wird die Prozess-ID erzeugt und ist ziemlich sofort verschwunden.


Linux
  1. Bash-Warten-Befehl mit Beispielen

  2. wc Linux-Befehl mit Beispielen

  3. Nohup-Befehl mit Beispielen

  4. JQ-Befehl in Linux mit Beispielen

  5. Das ultimative Bash-Array-Tutorial mit 15 Beispielen

Linux-make-Befehl mit Beispielen erklärt

Verwenden des GREP-Befehls unter Linux mit Beispielen

Das fc Command Tutorial mit Beispielen für Anfänger

Bash Echo-Befehl mit Beispielen in Linux erklärt

Bash-Scripting – Printf-Befehl mit Beispielen erklärt

Verlaufsbefehl mit Beispielen