我经常在我的bash脚本中添加set -e
。但是这次我必须调用一个命令,在成功时返回一些无意义的数字而不是0。如何告诉bash忽略此命令的返回值。
更改命令或更改命令以符合标准不是一种选择。
答案 0 :(得分:10)
true
始终返回零退出代码。所以你可以做到
command-with-meaningless-return-value || true
答案 1 :(得分:0)
如果以后需要使用$?
的值,则可以执行以下操作:
# 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 ?=$?