Qui mostra come usare ||
e &&
in una sola riga per concatenare l'esecuzione dei comandi: Come posso verificare la presenza di errori apt-get in uno script bash?
Sto cercando di interrompere l'esecuzione di uno script se una determinata condizione fallisce,
per esempio
false || echo "Obvious error because its false on left" && exit
Qui stampa Obvious error because its false on the left
ed esce dalla console che è quello che volevo.
true || echo "This shouldn't print" && exit
Qui, non c'è alcuna stampa echo ma anche il exit
comando viene eseguito, ovvero la console è chiusa, il exit
comando non deve essere eseguito perché il comando echo sulla destra non è stato eseguito? Oppure, per impostazione predefinita, un'istruzione è considerata falsa sul lato sinistro di un &&
operatore?
Modifica: avrei dovuto menzionarlo prima, il mio obiettivo era echeggiare l'errore ed uscire se non fosse chiaro. scritto nel mio caso specifico di rilevazione di errori quando si raggruppano le condizioni usando && e ||, la risposta di @ bodhi.zazen risolve il problema.
La risposta di @takatakatek rende più chiaro il controllo del flusso e i collegamenti della guida bash sono eccellenti
La risposta di @muru ha una buona spiegazione del perché non usare set -e se si desidera che vengano generati messaggi di errore personalizzati con alternative all'utilizzo di perl e trap, che ritengo sia un modo più robusto e mi vedo usarlo dal mio secondo script bash in poi!