Después de ingresar set -e
en un shell bash interactivo, bash saldrá inmediatamente si algún comando sale con un valor distinto de cero. ¿Cómo puedo deshacer este efecto?
Después de ingresar set -e
en un shell bash interactivo, bash saldrá inmediatamente si algún comando sale con un valor distinto de cero. ¿Cómo puedo deshacer este efecto?
Respuestas:
Con set +e
. Sí, es hacia atrás que habilitas las opciones de shell set -
y las deshabilitas con set +
. Pasas históricas, donchanow.
+
es como -
cruzar algo significa "no" como en "≠".
Puede ser desagradable usarlo set +e
/ set -e
cada vez que desee anularlo. Encontré una solución más simple.
En lugar de hacerlo así:
set +e
command_that_might_fail_but_we_want_to_ignore_it
set -e
puedes hacerlo así:
command_that_might_fail_but_we_want_to_ignore_it || true
o, si desea guardar las pulsaciones de teclas y no le importa ser un poco críptico:
command_that_might_fail_but_we_want_to_ignore_it || :
¡Espero que esto ayude!
:
Me preguntaba sobre la historia de , y encontré mi respuesta aquí , en caso de que alguien más tenga curiosidad.