我现在正在Bash中编程,并且我使用set -e
是因为在程序失败时继续执行脚本几乎不是想要的行为。
如果不需要,请使用||true
。
如果我需要退出代码,则将执行包装如下:
set +e
call_I_need_the_exit_code with few arguments
RV="$?"
set -e
# use "$RV" somewhat
但是,它很冗长,我很少切换set +e
和set -e
来引入烦人的错误。
有没有办法使函数执行命令并为退出代码设置一个已知变量?
类似这样的东西(伪代码):
safe_call( call_I_need_the_exit_code(with, few, arguments) )
# use "$RV" somewhat
其中safe_call
主要执行上一段代码。这将使我的代码更易于编写和阅读...
答案 0 :(得分:5)
|| true
起作用的原因是在set -e
下条件是安全的。这可以很容易地扩展到您的方案。
command && rv=0 || rv=$?