ユーザーがシェルのログアウトをキャンセルできるようにするスクリプト

ユーザーがシェルのログアウトをキャンセルできるようにするスクリプト

メッセージを表示し、対話型シェルからのログアウトをキャンセルするスクリプトを書きたいと思っています。これは、いくつかのシェルでバックグラウンド ジョブを実行することが多く、実行中のジョブを終了してすべてのシェルからログアウトすることがあるからです。必要なのは次のようなスクリプトです。

# If there are running jobs
if [ -z "$(jobs)" ]; then
    # Display messages, give choices, etc.
    ...code...
    # And finally, given some conditions (e.g. answers to questions, etc.)
    cancel_logout
else
    logout

おそらく、上記は に該当するでしょう~/.bash_logout

答え1

これを行う適切な方法は、bash自体にチェックを実行させることです。

shopt -s checkjobs

これにより、実行中のジョブが残っている場合に bash が通知を表示します。実行中のジョブがある場合は、実際に終了するには 2 回終了を試行する必要があります。

関連情報