这是myscript.sh
:
#!/bin/bash
function mytrap {
echo "Trapped!"
}
trap mytrap EXIT
exit 3
当我运行它时:
> ./myscript.sh
echo $?
3
为什么脚本的退出码和不带trap的退出码一样?通常,函数会隐式返回最后执行的命令的退出代码。在这种情况下:
- 回声返回 0
- 我希望
mytrap
返回 0 - 由于
mytrap
是执行的最后一个函数,因此脚本应返回 0
为什么不是这样?我的想法哪里错了?