最初は「バッシュルーレット」をするようなちょっとおもしろかったけど...
ゼロ以外のコードで終了する端末のコマンドは、端末ウィンドウを閉じます
たぶん私は、ターミナルがソースするどこかでbashスクリプトにset -e
を設定していると言われました。
.bash_profile
/.bashrc
/.profile
を確認しましたが、set -e
が表示されていないようです。
他に明らかな犯人はいますか?
了解しました。確かに、わずらわしいset -e
が原因で問題が発生しました。
私がset -e
を見つけた方法はbash -lx
を使用していた
最善の方法は、以下を使用することです。
bash -lx > lx.log 2>&1
次に、そのログファイルを開き、set
...を検索します。
わずらわしいset -e
を見つけたら、その行を削除して問題を解消できます。 (マシンの再起動は良いアイデアかもしれません)。
私の場合、set -e
は.bash_profileがソースとするファイルにありましたが、この行は.bash_profile自体にはありませんでした。
問題を解決するだけの場合は、set +e
の.bashrc
をの終わりに含めます。
あなたは掘りに行くことができます-set -e
があるかもしれない他の多くの場所があります-しかし、それは多くの世話をします。
ただし、set -e
が$Prompt_COMMAND
の一部である場合、上記は機能しません。 printf '%s\n' "$Prompt_COMMAND"
を試して、内容を確認してください。