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

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

メッセージを表示し、対話型シェルからログアウトをキャンセルするスクリプトを作成したいと思います。一部のシェルではバックグラウンドジョブを頻繁に実行しますが、すべてのシェルを終了した瞬間に実行中のジョブを終了するためです。私が望むのは、次のスクリプトです。

# 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回試してください。

関連情報