No começo isso foi um pouco engraçado, como jogar "Bash Roulette"... mas agora está ficando velho haha
Qualquer comando no meu terminal que saia com código diferente de zero fecha a janela do meu terminal
Disseram-me que talvez eu tenha set -e
definido algum script bash em algum lugar das fontes do meu terminal.
Eu verifiquei .bash_profile
/ .bashrc
/ .profile
e não parece que set -e
esteja lá.
Haveria outros culpados óbvios?
Responder1
Tudo bem, de fato, foi um erro set -e
que causou meu problema.
A maneira que encontrei set -e
estava usandobash -lx
A melhor coisa a fazer seria usar:
bash -lx > lx.log 2>&1
em seguida, abra esse arquivo de log e faça uma pesquisa por set
...
depois de descobrir isso, set -e
você pode remover essa linha e seu problema deverá desaparecer! (Reiniciar a máquina pode ser uma boa ideia).
No meu caso, estava set -e
em um arquivo que .bash_profile origina, mas a linha não estava no próprio .bash_profile.
Responder2
Se você quer apenas resolver o problema, inclua set +e
no seu .bashrc
- pelo menosfim.
Você pode cavar - há muitos outros lugares onde set -e
pode estar - mas isso resolverá tudo.
Se, no entanto, fizer set -e
parte do seu, $PROMPT_COMMAND
o procedimento acima não funcionará. Experimente printf '%s\n' "$PROMPT_COMMAND"
e veja o que há nele.
Responder3
No meu caso, o set -e
não estava em nenhuma das minhas startups do bash e o anexo set +e
ao meu .bashrc
não estava consertando.
Acontece que set -e
estava em um script bash que eu executo frequentemente para o meu projeto, e eu estava executando esse script . ./my-dev-script.sh
para que ele funcionassehonre meus apelidos do bash.
O que eu não percebi é que executá-lo com aquele extra .
na frente também fazia com que as opções do bash no script fossem transferidas para todas as minhas sessões regulares de terminal.
Preciso de uma nova solução para executar um script bash que respeite meus aliases pessoais do bash, mas pelo menos encontrei a fonte do rogue set -e
. Apenas executá-lo normalmente ./my-dev-script.sh
evita o cenário frustrante da "Roleta Bash".