
我可以使用 Bash命令exit
從視窗捕獲該命令,但只有當使用者在終端視窗中鍵入時它才有效。如果使用者按一下關閉按鈕,則不會執行陷阱退出處理程序。gnome-terminal
trap
exit
背景資料:
當使用者點擊關閉按鈕時,我想將 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
您可以在每個命令之後保存歷史文件。這個技巧通常用於同步多個視窗的歷史記錄,但也適用於您的情況。例如,參見這個答案