Dopo essere entrato set -e
in 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 -e
in 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 -e
ogni 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.