bash
バージョンで4.4.12
次のように入力した場合:
set -e
コマンドプロンプトでシェルが終了し、を返します128
。
set -u
天気いいのになぜこんなことが起きるの?
答え1
たとえば、拡張の一部としてゼロ以外の終了ステータスを返すコマンドがある場合PROMPT_COMMAND
(プロンプトを印刷する前に実行されます)、このbash
オプションを設定すると、シェルはすぐに終了します。errexit
set -e
DEBUG
もう1つの可能性は、ゼロ以外の終了状態を返すトラップセットがあることです。ただし、トラップがDEBUG
実行されます。今後Enterを押した直後にシェルは終了せず、次のset -e
コマンドを開始する前にシェルが終了するようにコマンドを呼び出します。
set -u
シェルオプションを設定するだけですnounset
。このオプションを使用すると、設定されていない変数を$@
sumに拡張しようとすると、シェルでエラーが発生します$*
。set -e
無効な場合、シェルは終了しません。
そしてset -u
効果を発揮するそしてPS1
シェルで変数を設定解除〜するerrexit
設定オプションを使用した直後に終了してくださいset -e
。