Rozważ ten fragment:
stop () {
echo "${1}" 1>&2
exit 1
}
func () {
if false; then
echo "foo"
else
stop "something went wrong"
fi
}
Zwykle func
wywołanie powoduje zakończenie skryptu, co jest zamierzonym zachowaniem. Jednak jeśli jest wykonywany w podpowłoce, na przykład w
result=`func`
nie wyjdzie ze skryptu. Oznacza to, że kod wywołujący musi za każdym razem sprawdzać status wyjścia funkcji. Czy istnieje sposób, aby tego uniknąć? Czy po to set -e
jest?
func
.