GNU/Linux >> Linux Esercitazione >  >> Linux

'&&' vs. '&' con il comando 'test' in Bash

& esegue un comando in background e restituirà 0 indipendentemente dal suo stato.

Dalla pagina man:

Se un comando viene terminato dall'operatore di controllo &, la shell esegue il comando in background in una subshell. La shell non attende la fine del comando e lo stato di ritorno è 0. Comandi separati da un; vengono eseguiti in sequenza; la shell attende che ogni comando termini a turno. Lo stato di ritorno è lo stato di uscita dell'ultimo comando eseguito.


Guarda quali sono i tuoi comandi:

test -x examples.desktop  && echo $?

Questo significa controllare se examples.desktop è eseguibile e se lo è esegui echo $? .

test -x examples.desktop  & echo $?

significa controllare se examples.desktop è eseguibile in "background". Quindi esegui echo $? .


Il significato di && e & sono intrinsecamente diversi.

  • Che cos'è && in Bash? In Bash—e in molti altri linguaggi di programmazione—&& significa "E". E in un contesto di esecuzione del comando come questo, significa elementi sia a sinistra che a destra di && dovrebbe essere eseguito in sequenza in questo caso.
  • Che cos'è & in Bash? E un singolo & significa che i comandi precedenti—all'immediata sinistra del & —dovrebbe semplicemente essere eseguito in background.

Quindi, guardando il tuo esempio:

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

Il primo comando, così come è strutturato, in realtà non restituisce nulla. Ma il secondo comando restituisce un [1] 2992 in cui 2992 si riferisce all'ID processo (PID) in esecuzione in background e al 0 è l'output del primo comando.

Poiché il secondo comando esegue solo test -x examples.desktop in background avviene abbastanza rapidamente, quindi l'ID del processo viene generato e scompare immediatamente.


Linux
  1. Comando Bash wait con esempi

  2. Comando wc Linux con esempi

  3. Comando Nohup con esempi

  4. Comando JQ in Linux con esempi

  5. Il tutorial Ultimate Bash Array con 15 esempi

Linux make comando spiegato con esempi

Utilizzo del comando GREP in Linux con esempi

Il tutorial del comando fc con esempi per principianti

Comando Bash Echo spiegato con esempi in Linux

Scripting Bash – Spiegazione del comando Printf con esempi

Comando della cronologia con esempi