Bu pasajı göz önünde bulundurun:
stop () {
echo "${1}" 1>&2
exit 1
}
func () {
if false; then
echo "foo"
else
stop "something went wrong"
fi
}
Normal func
olarak çağrıldığında, komut dosyasının sonlandırılmasına neden olur, bu amaçlanan davranıştır. Ancak, aşağıdaki gibi bir alt kabukta yürütülürse,
result=`func`
komut dosyasından çıkmaz. Bu, çağıran kodun her seferinde fonksiyonun çıkış durumunu kontrol etmesi gerektiği anlamına gelir. Bundan sakınmanın bir yolu var mı? Bunun set -e
için mi?