脚本里写有:
set -u
((ret=ret+$?))
ret没定义,报错 ret: unbound variable,导致脚本直接返回状态0.后面捕捉不到错误,如果命令行执行,就可以捕捉到错误。
具体原因:
set -u
Treat unset variables as an error when performing parameter expansion. If expansion is attempted on an unset variable, the shell prints an error message, and, if not interactive, exits with a non-zero status.
(())
①整数扩展。这种扩展计算是整数型的计算,不支持浮点型。((exp))结构扩展并计算一个算术表达式的值,如果表达式的结果为0,那么返回的退出状态码为1,或者 是"假",而一个非零值的表达式所返回的退出状态码将为0,或者是"true"。若是逻辑判断,表达式exp为真则为1,假则为0。