使用-e

时间:2018-07-06 07:47:22

标签: bash exit-code

我现在正在Bash中编程,并且我使用set -e是因为在程序失败时继续执行脚本几乎不是想要的行为。

如果不需要,请使用||true

如果我需要退出代码,则将执行包装如下:

set +e
call_I_need_the_exit_code with few arguments
RV="$?"
set -e
# use "$RV" somewhat

但是,它很冗长,我很少切换set +eset -e来引入烦人的错误。

有没有办法使函数执行命令并为退出代码设置一个已知变量?

类似这样的东西(伪代码):

safe_call( call_I_need_the_exit_code(with, few, arguments) )
# use "$RV" somewhat

其中safe_call主要执行上一段代码。这将使我的代码更易于编写和阅读...

1 个答案:

答案 0 :(得分:5)

|| true起作用的原因是在set -e下条件是安全的。这可以很容易地扩展到您的方案。

command && rv=0 || rv=$?

顺便说一句,您应该avoid uppercase for your private variables.