web-dev-qa-db-fra.com

Comment annuler l'effet de "set -e" qui force bash à sortir immédiatement en cas d'échec d'une commande?

Après avoir entré set -e dans un shell bash interactif, bash se ferme immédiatement si une commande se termine avec une valeur autre que zéro. Comment puis-je annuler cet effet?

185
Tianyi Cui

Avec set +e. Oui, c’est en arrière que vous activer Options de shell avec set - et désactiver les avec set +. Raisins historiques, donchanow.

288
zwol

Il peut être inutile d'utiliser set +e/set -e à chaque fois que vous souhaitez le remplacer. J'ai trouvé une solution plus simple.

Au lieu de le faire comme ceci:

set +e
command_that_might_fail_but_we_want_to_ignore_it
set -e

vous pouvez le faire comme ça:

command_that_might_fail_but_we_want_to_ignore_it || true

ou, si vous voulez enregistrer des frappes au clavier et que cela ne vous dérange pas d'être un peu cryptique:

command_that_might_fail_but_we_want_to_ignore_it || :

J'espère que cela t'aides!

62
szeryf
  • L'utilisation de + plutôt que de - désactive ces indicateurs.

Source

19
mhitza