এই স্নিপেট বিবেচনা করুন:
stop () {
echo "${1}" 1>&2
exit 1
}
func () {
if false; then
echo "foo"
else
stop "something went wrong"
fi
}
সাধারণত যখন func
ডাকা হয় তখন এটি স্ক্রিপ্টটি শেষ করে দেবে, যা উদ্দেশ্যমূলক আচরণ। তবে এটি যদি একটি সাব-শেলতে কার্যকর করা হয় তবে যেমন
result=`func`
এটি স্ক্রিপ্ট থেকে প্রস্থান করবে না। এর অর্থ হ'ল কলিং কোডটি প্রতিবার ফাংশনের প্রস্থান স্থিতি পরীক্ষা করতে হয়। এই সমস্যা এড়ানোর জন্য একটি উপায় আছে কি? এটি কি set -e
জন্য হয়?