shell里 (())和set -u 用法

脚本里写有:

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。

你可能感兴趣的:(linux)