bash EXITトラップctrl + dを使用して確認またはキャンセル[重複]

bash EXITトラップctrl + dを使用して確認またはキャンセル[重複]

シェルを終了する前に確認を要求し、確認が拒否された場合にシェルが終了しないようにする簡単な方法はありますか?これは、トンネルで使用される SSH セッションが誤って終了するのを防ぐのに役立ちます。

問題は、trap ... EXITトラップを完成した後もまだそこにいるということです。これまで私が見つけた最も有望な解決策は次のとおりです。トラップを使用して終了を確認する、ctrl + cについて説明しますが、ctrl + dでも機能しているようです。

ベストアンサー1

set -o ignoreeof

EOFこれにより、対話型シェルは()を無視しますCtrl+D

シェルがbash印刷されます

Use "exit" to leave the shell.

を押すとCtrl+D

IGNOREEOFシェル変数を正の整数値に設定することもできます。この値は、Ctrl+Dシェルが実際に終了する前に押す必要がある回数を決定します。これset -o ignoreeofの効果はbash同じ設定ですIGNOREEOF=10(その逆も同様)。

シェルignoreeofオプションはPOSIXオプションであり、すべてのPOSIX様シェルで利用可能でなければなりません。

関連:

おすすめ記事