讓使用者取消 shell 登出的腳本

讓使用者取消 shell 登出的腳本

我想編寫一個腳本來顯示訊息並可能取消從互動式 shell 中的登出。這是因為我經常在某些 shell 中執行後台作業,並且在我退出所有 shell 的那一刻,關閉正在執行的作業。我想要的是這樣的腳本:

# 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 顯示一條通知。如果有作業正在運行,您必須嘗試退出兩次才能真正退出。

相關內容