在交互式bash shell中输入set -e后,如果任何命令不为零,bash将立即退出。我怎样才能消除这种影响?


用set +e。是的,你用set -启用shell选项,用set +禁用它们是倒退的。历史悠久的葡萄干,donchanow。


使用+而不是-会导致这些标志被关闭。


每次要重写它时,使用set +e/set -e可能不方便。我找到了一个更简单的解决办法。

而不是这样做:

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 || :

希望这能有所帮助!