After entering set -e
in an interactive bash shell, bash will exit immediately if any command exits with non-zero. How can I undo this effect?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
With set +e
. Yeah, it's backward that you enable shell options with set -
and disable them with set +
. Historical raisins, donchanow.
回答2:
It might be unhandy to use set +e
/set -e
each time you want to override it. I found a simpler solution.
Instead of doing it like this:
set +e
command_that_might_fail_but_we_want_to_ignore_it
set -e
you can do it like this:
command_that_might_fail_but_we_want_to_ignore_it || true
or, if you want to save keystrokes and don't mind being a little cryptic:
command_that_might_fail_but_we_want_to_ignore_it || :
Hope this helps!
回答3:
- Using + rather than - causes these flags to be turned off.
Source