Pertimbangkan cuplikan ini:
stop () {
echo "${1}" 1>&2
exit 1
}
func () {
if false; then
echo "foo"
else
stop "something went wrong"
fi
}
Biasanya ketika func
dipanggil itu akan menyebabkan script untuk mengakhiri, yang merupakan perilaku yang dimaksud. Namun, jika dijalankan dalam sub-shell, seperti di
result=`func`
itu tidak akan keluar dari skrip. Ini berarti kode panggilan harus memeriksa status keluar dari fungsi setiap kali. Apakah ada cara untuk menghindari ini? Apakah ini untuk apa set -e
?
func
.