2013-04-25 104 views
2

我想在每次退出bash時執行一些命令,但無法找到執行此操作的方法。 註銷時有〜/ .bash_logout文件,但通常我們使用交互式shell而不是登錄shell,所以這對於此目的不是很有用。如何讓bash在每次退出時執行腳本?

有沒有辦法做到這一點?謝謝!

+0

你實際試圖解決什麼問題? – 2013-04-25 13:56:37

+0

好吧,讓我這樣說:我想要一個腳本自動執行,然後在終端模擬器中退出bash。 – qed 2013-04-25 13:58:46

+0

陷阱EXIT可能工作。 – 2013-04-25 13:59:23

回答

5

您可以捕捉EXIT信號。

exit_handler() { 
    # code to run on exit 
} 

trap 'exit_handler' EXIT 

Techinically,trap exit_handler EXIT將正常工作。我引用它來強調trap的第一個參數是一個基本上傳遞給eval的字符串,而不一定是單個函數名稱。您可以輕鬆地寫出

trap 'do_this; do_that; if [[ $PICKY == yes ]]; then one_more_thing; fi' EXIT 

而不是將您的代碼收集到一個函數中。

+0

你的意思是這些應該放在.bashrc中? – qed 2013-04-25 14:22:33

+0

啊,是的,我忘了提到這一點。 – chepner 2013-04-25 15:24:30