Se, por exemplo, você tiver um comando que esteja retornando um status de saída diferente de zero como parte da expansão de PROMPT_COMMAND
(que é executada antes de imprimir o prompt em bash
), isso acionará o shell para sair imediatamente quando você definir a opção errexit
com set -e
.
Outra possibilidade é que haja um conjunto de trap DEBUG
que retorne um status de saída diferente de zero. Uma armadilha de DEBUG
é no entanto executada antes de um comando ser invocado, portanto não fará com que a shell saia imediatamente quando você pressionar Enter após set -e
, mas antes lançando o próximo comando.
Com set -u
, você define a opção nounset
shell. Esta opção fará com que o shell emita um erro se você tentar expandir qualquer variável não definida além do formulário $@
e $*
. Não fará com que o shell saia, a menos que set -e
também esteja em vigor.
Com set -u
em efeito e uma variável não definida em PS1
, o shell sairá assim que você definir a opção errexit
com set -e
.