Após entrar set -e
em um shell bash interativo, o bash será encerrado imediatamente se algum comando sair com um valor diferente de zero. Como posso desfazer esse efeito?
Após entrar set -e
em um shell bash interativo, o bash será encerrado imediatamente se algum comando sair com um valor diferente de zero. Como posso desfazer esse efeito?
Respostas:
Com set +e
. Sim, é para trás que você ativaset -
e desativa as opções de shell set +
. Passas históricas, agora.
+
é como, -
mas atravessar algo significa "não" como em "≠".
Pode ser difícil de usar set +e
/ set -e
sempre que você deseja substituí-lo. Encontrei uma solução mais simples.
Em vez de fazer assim:
set +e
command_that_might_fail_but_we_want_to_ignore_it
set -e
você pode fazer assim:
command_that_might_fail_but_we_want_to_ignore_it || true
ou, se você deseja salvar as teclas digitadas e não se importa de ser um pouco enigmático:
command_that_might_fail_but_we_want_to_ignore_it || :
Espero que isto ajude!
:
, e encontrei a minha resposta aqui , caso alguém mais esteja curioso.