Après être entré set -edans un shell bash interactif, bash se fermera immédiatement si une commande se termine avec une valeur non nulle. Comment annuler cet effet?
Après être entré set -edans un shell bash interactif, bash se fermera immédiatement si une commande se termine avec une valeur non nulle. Comment annuler cet effet?
Réponses:
Avec set +e. Oui, c'est en arrière que vous activez les options du shell avec set -et les désactivez avec set +. Raisins secs historiques, donchanow.
+c'est comme -mais traverser quelque chose signifie "pas" comme dans "≠".
Il peut être difficile à utiliser set +e/ set -echaque 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 ceci:
command_that_might_fail_but_we_want_to_ignore_it || true
ou, si vous souhaitez enregistrer les frappes 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!
:Je me posais des questions sur l'histoire et j'ai trouvé ma réponse ici , au cas où quelqu'un d'autre serait curieux.