Estou aprendendo a usar com eficiência diferentes set
opções no meu script e deparei-me set -u
que parece ser perfeito para sair do meu script se uma variável não for definida corretamente (por exemplo, excluindo usuários). De acordo com a página do manual , set -u
e set -e
faz o seguinte ...
-e Exit immediately if a command exits with a non-zero status.
-u Treat unset variables as an error when substituting.
Criei um script de teste para testar essa funcionalidade, mas ela não parece estar funcionando conforme o esperado. Talvez alguém possa me explicar melhor o meu problema e onde estou interpretando mal? O script de teste está abaixo. Obrigado.
set -e
set -u
testing="This works"
echo $?
echo ${testing}
testing2=
echo $?
echo ${testing2}
testing3="This should not appear"
echo $?
echo ${testing3}
Espero que o script exiba 0 e "Isso funcione" e falhe, pois ${testing2}
não está definido.
Em vez disso, são exibidos 0 e "Isso funciona" , seguido por 0 e, em seguida, 0 Isso não deve aparecer
Alguém pode fornecer algum conhecimento? Obrigado.