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 .