“ set -e”在shell和命令替换中
在shell脚本中,当脚本执行的某些命令以非零退出代码退出时,通常会通过停止脚本来使脚本更加健壮。
通过在末尾添加
|| true
来指定您不关心某些成功的命令通常很容易。
当您真正关心返回值时会出现问题,但不希望脚本停止非零返回代码,例如:
output=$(possibly-failing-command)
if [ 0 == $? -a -n "$output" ]; then
...
else
...
fi
这里我们要检查退出代码(因此我们不能在命令替换表达式中使用|| true
)并获取输出。但是,如果命令替换命令失败,整个脚本将因set -e
而停止。
是否有一种干净的方法可以防止脚本停止在此而不会取消设置-e
并在之后将其设置回来?
没有找到相关结果
已邀请:
1 个回复
浮凰量
命令失败
指挥工作