【发布时间】:2019-10-18 10:51:52
【问题描述】:
考虑一个在启用set -e 的情况下执行的 bash 脚本(出错时退出)。
脚本中的一个命令返回预期的非零退出代码。仅当命令完全返回此退出代码时,如何恢复脚本?请注意,退出代码零也应计为错误。最好是单线解决方案。
例子:
set -e
./mycommand # only continue when exit code of mycommand is '3', otherwise terminate script
...
【问题讨论】:
-
请注意,使用
set -e并不是普遍认为的好主意——它的行为通常非常不直观,而且often incompatible 不仅在不同的shell 之间,而且在同一shell 的不同版本之间,造成运行时行为很难预测。强烈推荐阅读BashFAQ #105。 -
@CharlesDuffy 感谢您的注释,不幸的是,在这种情况下我无法控制
set -e,我只需要解决它 -
它可以被关闭 --
set +e这样做。