Trap gnome 終端關閉按鈕

Trap gnome 終端關閉按鈕

我可以使用 Bash命令exit從視窗捕獲該命令,但只有當使用者在終端視窗中鍵入時它才有效。如果使用者按一下關閉按鈕,則不會執行陷阱退出處理程序。gnome-terminaltrapexit

背景資料: 當使用者點擊關閉按鈕時,我想將 Bash 歷史記錄儲存到自訂歷史記錄檔案中。我已經使用過export HISTFILE=/tmp/custom.hist,這在很多情況下都有效(當用戶單擊gnome 終端中的關閉按鈕時,歷史記錄將保存到給定的文件中),但在某些情況下,歷史記錄不會保存,所以我正在尋找替代方案設定HISTFILE環境變數..

答案1

你要捕捉SIGHUP;

man 7 signal

SIGHUP        1       Term    Hangup detected on controlling terminal or death of controlling process

因此,要捕獲 SIGHUP 和 EXIT:

trap 'export HISTFILE=/tmp/custom.hist' 1 EXIT

或者:

trap 'export HISTFILE=/tmp/custom.hist' SIGHUP EXIT

答案2

您可以在每個命令之後保存歷史文件。這個技巧通常用於同步多個視窗的歷史記錄,但也適用於您的情況。例如,參見這個答案

相關內容