この Bash スクリプトは期待どおりに動作します。
test_this.sh
function run_this() {
trap "echo TRAPPED" EXIT
false
echo $?
}
run_this
印刷します
1
TRAPPED
ただし、この関数をエクスポートしようとすると、トラップに失敗します。
test_this2.sh
function run_this() {
trap "echo TRAPPED" EXIT
false
echo $?
}
export -f run_this
コマンドラインでこれを入手して実行します。
> source test_this2.sh
> run_this
結果は
1
罠はどこに行った?