Observação: as instruções aqui se aplicam à versão 4.0.35 e posterior do Bash. As implementações de set -e
variam muito entre diferentes shells / versões . Siga o conselho de Stéphane e não use set -e
.
man bash
na seção Comandos internos do shell / set
explica muito bem as coisas, embora o texto seja um pouco denso e exija um pouco de foco. Para suas perguntas específicas, as respostas são:
-
O
set -e
se comporta diferente aqui ... vs .. - Depende do que você quer dizer com "diferente", mas suspeito que você consideraria a resposta "não" ... não há um escopo complicado regras. Ele age de forma bastante linear. - Set -e pertence dentro de funções? - Perfeitamente válido.
- Set -e declarado fora das funções, afeta as funções "aninhadas" dentro de um arquivo shell? - Sim
-
E quanto ao inverso? -
set -e
em uma função e depois encontra um status diferente de zero após o retorno? Sim, isso vai sair.