Dopo essere entrato set -ein una shell bash interattiva, bash uscirà immediatamente se un comando esce con un valore diverso da zero. Come posso annullare questo effetto?
Dopo essere entrato set -ein una shell bash interattiva, bash uscirà immediatamente se un comando esce con un valore diverso da zero. Come posso annullare questo effetto?
Risposte:
Con set +e. Sì, è a ritroso che abiliti le opzioni di shell con set -e le disabiliti con set +. Uvetta storica, donchanow.
+è come -ma attraversare qualcosa significa "non" come in "≠".
Potrebbe non essere corretto usarlo set +e/ set -eogni volta che si desidera sovrascriverlo. Ho trovato una soluzione più semplice.
Invece di farlo in questo modo:
set +e
command_that_might_fail_but_we_want_to_ignore_it
set -e
puoi farlo in questo modo:
command_that_might_fail_but_we_want_to_ignore_it || true
o, se vuoi salvare i tasti premuti e non ti dispiace essere un po 'criptico:
command_that_might_fail_but_we_want_to_ignore_it || :
Spero che questo ti aiuti!
:Mi stavo chiedendo della storia di , e ho trovato la mia risposta qui , nel caso qualcun altro fosse curioso.