此 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
陷阱去哪儿了?