Zsh
每次退出 zsh shell(包括非登錄 shell)時如何執行命令
每次退出 shell 時,我一直在嘗試執行一個命令來清理我的一些臨時文件。
我最初認為這將是工作,
.zlogout
但如果我,例如,在我的終端模擬器(小貓)中打開多個 shell,它似乎不會被執行。根據我在文件中找到的內容,.zlogin
並且.zlogout
僅適用於登錄 shell,如果我錯了,請糾正我,當您只是在終端模擬器中打開不同的選項卡或視窗時,情況並非如此。非登錄 shell的等價物是
.zlogout
什麼,或者在非登錄 shell 中實現類似效果的推薦方法是什麼?
此zsh 指南中有一個範例,其中使用該函式
~/.zlogout
的非登錄 shell 的來源。TRAPEXIT
這似乎正是您想要的。TRAPEXIT() { # commands to run here, e.g. if you # always want to run .zlogout: if [[ ! -o login ]]; then # don't do this in a login shell # because it happens anyway . ~/.zlogout fi }
將此功能添加到您的
~/.zshrc
.
添加一個功能,如
function shellExit { # Your commands }
連同一個陷阱,例如
trap shellExit EXIT
在
.zshrc