Considera questo frammento:
stop () {
echo "${1}" 1>&2
exit 1
}
func () {
if false; then
echo "foo"
else
stop "something went wrong"
fi
}
Normalmente quando func
viene chiamato, lo script viene chiuso, ovvero il comportamento previsto. Tuttavia, se viene eseguito in una sotto-shell, come in
result=`func`
non uscirà dallo script. Ciò significa che il codice chiamante deve controllare ogni volta lo stato di uscita della funzione. c'è un modo per evitarlo? È a questo che set -e
serve?
func
.