Após entrar set -eem 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 -eem 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 -esempre 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.