如何撤消“set -e”的效果,如果任何命令失败,立即退出

在交互式bash shell中inputset -e后,如果任何命令以非零值退出,bash将立即退出。 我怎样才能撤销这个效果?

set +e 。 是的,它是向后的,你启用shell选项set -禁用 set + 。 历史的葡萄干,donchanow。

每次想要覆盖它时,使用set +e / set -e可能是不方便的。 我find一个更简单的解决scheme。

而不是这样做:

 set +e command_that_might_fail_but_we_want_to_ignore_it set -e 

你可以这样做:

 command_that_might_fail_but_we_want_to_ignore_it || true 

或者,如果你想保存击键,并不介意有点神秘:

 command_that_might_fail_but_we_want_to_ignore_it || : 

希望这可以帮助!

  • 使用+而不是 – 使这些标志被closures。

资源