Considere este fragmento:
stop () {
echo "${1}" 1>&2
exit 1
}
func () {
if false; then
echo "foo"
else
stop "something went wrong"
fi
}
Normalmente cuando func
se llama provocará que el script finalice, que es el comportamiento previsto. Sin embargo, si se ejecuta en un sub-shell, como en
result=`func`
no saldrá del script. Esto significa que el código de llamada tiene que verificar el estado de salida de la función cada vez. Hay alguna manera de evitar esto? ¿Para esto es esto set -e
?
func
.