web-dev-qa-db-ja.com

コマンドが失敗した場合にbashをすぐに終了させる「set -e」の効果を元に戻す方法は?

インタラクティブbashシェルでset -eを入力した後、ゼロ以外でコマンドが終了すると、bashはすぐに終了します。この効果を元に戻すにはどうすればよいですか?

185
Tianyi Cui

set +eで。ええ、それはあなたがenableset -のシェルオプションとdisableset +のオプションを使用することです。歴史的なレーズン、ドンチャヌフ。

288
zwol

オーバーライドするたびに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 || :

お役に立てれば!

62
szeryf
  • -ではなく+を使用すると、これらのフラグがオフになります。

ソース

19
mhitza