GNU/Linux >> Linux Esercitazione >  >> Linux

Come uscire se un comando fallisce?

Le altre risposte hanno coperto bene la domanda diretta, ma potresti anche essere interessato a utilizzare set -e . Con ciò, qualsiasi comando che fallisce (al di fuori di contesti specifici come if tests) causerà l'interruzione dello script. Per alcuni script, è molto utile.


Prova:

my_command || { echo 'my_command failed' ; exit 1; }

Quattro modifiche:

  • Cambia && a ||
  • Usa { } al posto di ( )
  • Introduci ; dopo exit e
  • spazi dopo { e prima del }

Dal momento che vuoi stampare il messaggio ed uscire solo quando il comando fallisce (esce con un valore diverso da zero) hai bisogno di un || non un && .

cmd1 && cmd2

eseguirà cmd2 quando cmd1 riesce(valore di uscita 0 ). Dove come

cmd1 || cmd2

eseguirà cmd2 quando cmd1 fallisce(valore di uscita diverso da zero).

Usando ( ) esegue il comando al loro interno in una sotto-shell e chiamando un exit da lì ti fa uscire dalla sotto-shell e non dalla tua shell originale, quindi l'esecuzione continua nella tua shell originale.

Per superare questo uso { }

Le ultime due modifiche sono richieste da bash.


Linux
  1. Come rinominare i file in Linux

  2. Come usare il comando Su in Linux

  3. Come pianificare un comando Rsync?

  4. `$?` ? È una variabile?

  5. errore:comando 'gcc' non riuscito con stato di uscita 1 su CentOS

Come utilizzare il comando SS di Linux

Come rimuovere una directory in Linux

Come usare il comando nohup di Linux

Comando di uscita Bash e codici di uscita

Come usare il comando PS

Come usare il comando TOP