이 스 니펫을 고려하십시오.
stop () {
echo "${1}" 1>&2
exit 1
}
func () {
if false; then
echo "foo"
else
stop "something went wrong"
fi
}
일반적으로 func
호출되면 스크립트가 종료되며 이는 의도 된 동작입니다. 그러나 다음과 같은 하위 셸에서 실행되는 경우
result=`func`
스크립트를 종료하지 않습니다. 이것은 호출 코드가 매번 함수의 종료 상태를 확인해야 함을 의미합니다. 이것을 피할 수있는 방법이 있습니까? 이것이 무엇 set -e
입니까?