我经常添加set -e
我的 bash 脚本。但是这次我必须调用一个命令,该命令在成功时返回一些无意义的数字而不是 0。我怎样才能告诉 bash 只忽略这个命令的返回值。
更改命令或更改其代码以符合标准不是一种选择。
我经常添加set -e
我的 bash 脚本。但是这次我必须调用一个命令,该命令在成功时返回一些无意义的数字而不是 0。我怎样才能告诉 bash 只忽略这个命令的返回值。
更改命令或更改其代码以符合标准不是一种选择。
true
总是返回一个零退出代码。所以你可以做
command-with-meaningless-return-value || true
如果您需要使用$?
稍后的值,您可以这样做:
# A test funtion to demonstrate different exit status values
$ exit_with(){ return $1; }
$ exit_with 0
$ echo $?
0
$ exit_with 4
$ echo $?
4
$ exit_with 4 || true
$ echo $?
0
# capture the exit status rather than clobber it
$ exit_with 4 || exit_status=$?
$ echo $?
0
$ echo $exit_status
4
在这种情况下,使用$exit_status
而不是$?
. 我还没有找到一种方法来做类似?=$?
或declare ?=$?