为什么Bash陷阱不捕获未定义变量的退出状态?
发布时间:2020-12-16 01:15:01 所属栏目:安全 来源:网络整理
导读:我需要使用陷阱捕获 Bash脚本中的错误条件.出于这个原因,我在我的脚本中都设置了-e AND set -u.但是我注意到脚本中定义的陷阱没有得到错误状态.例如: set -eset -uon_exit() { exit_status=$? echo exit_status=$exit_status exit $exit_status}trap on_exi
我需要使用陷阱捕获
Bash脚本中的错误条件.出于这个原因,我在我的脚本中都设置了-e AND set -u.但是我注意到脚本中定义的陷阱没有得到错误状态.例如:
set -e set -u on_exit() { exit_status=$? echo exit_status=$exit_status exit $exit_status } trap on_exit EXIT X=$Y 上面的代码段打印: line 12: Y: unbound variable exit_status=0 而我期望错误状态为非零.删除set -e后,错误状态将正确报告为1. 这是什么原因? Bash版本:GNU bash,版本3.2.57(1)-release(x86_64-apple-darwin15)
从4.0到4.1之间的更改日志:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |