このスニペットを検討してください。
stop () {
echo "${1}" 1>&2
exit 1
}
func () {
if false; then
echo "foo"
else
stop "something went wrong"
fi
}
通常、func
が呼び出されると、スクリプトが終了します。これは意図した動作です。ただし、次のようなサブシェルで実行される場合
result=`func`
スクリプトは終了しません。つまり、呼び出しコードは毎回関数の終了ステータスをチェックする必要があります。これを回避する方法はありますか?これは何のset -e
ためですか?