Comment annuler l’effet de «set -e» qui fait sortir bash immédiatement si une commande échoue?

Après avoir entré set -e dans un shell de bash interactif, bash quittera immédiatement si une commande existe avec des valeurs non nulles. Comment puis-je annuler cet effet?

Avec set +e . Ouais, c’est en arrière que vous activez les options du shell avec set - et les désactivez avec set + . Les raisins historiques, donc, donc.

Il peut être imprudent d’utiliser set +e / set -e chaque fois que vous voulez le remplacer. J’ai trouvé une solution plus simple.

Au lieu de le faire comme ça:

 set +e command_that_might_fail_but_we_want_to_ignore_it set -e 

vous pouvez le faire comme ceci:

 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 énigmatique:

 command_that_might_fail_but_we_want_to_ignore_it || : 

J’espère que cela t’aides!

  • L’utilisation de + plutôt que – entraîne la désactivation de ces indicateurs.

La source