Рассмотрим этот фрагмент:
stop () {
echo "${1}" 1>&2
exit 1
}
func () {
if false; then
echo "foo"
else
stop "something went wrong"
fi
}
Обычно, когда func
вызывается, сценарий завершается, что является предполагаемым поведением. Тем не менее, если он выполняется в под-оболочке, например, в
result=`func`
это не выйдет из сценария. Это означает, что вызывающий код должен каждый раз проверять состояние выхода функции. Есть ли способ избежать этого? Это для чего set -e
?
func
.