的退出代码这是myscript.sh
:击:陷阱
#!/bin/bash
function mytrap {
echo "Trapped!"
}
trap mytrap EXIT
exit 3
当我运行它:
> ./myscript.sh
echo $?
3
为什么是脚本的退出代码的陷阱一样的退出代码没有它?通常,函数隐式返回最后执行的命令的退出代码。在这种情况下:
- 回声返回0
- 我希望
mytrap
返回0 - 由于
mytrap
是最后执行的功能,脚本应该返回0
这是为什么不案件?我的思想在哪里错了?
人提示:这是一个好主意,始终使用'设置-e'并在“设置-o pipefail”你bash脚本。一旦一个命令失败,这将立即停止脚本。它可以让你在半焙烤状态下做愚蠢的事情之前发现错误并中止。 –