关闭 Zsh shell(或终端)时是否可以调用脚本?
Is it possible to invoke a script, when closing a Zsh shell (or the terminal)?
当我关闭我的 (Zsh) shell(and/or 终端模拟器)时,是否可以 运行 脚本?
我经常使用特定配置打开终端。在关闭它之前,我想被问到,以避免意外关闭它(经常发生)。
check/ask 的脚本很简单,但我想知道如何挂钩它。
如果 shell 是 login-shell,文件 ~/.zlogout
将被执行,因此您可以将命令放在那里。
对于其他情况,您可以设置一个 trap
命令来捕获 shell 的正常 exit
,或者可能会杀死您的 shell 的信号。除了通常的 trap
命令外,ZSH 还允许您定义 trap-functions(请参阅 zshmisc[=24= 中的 Trap Functions 部分] man-page)。例如,如果您定义了一个名为 TRAPEXIT
的函数,它会在 shell 退出时执行。
我不知道你的终端程序如何对待它产生的进程,所以如果你只是关闭终端,我不能说在硬杀死它之前先发送一个可捕获信号是否足够礼貌方式。
当我关闭我的 (Zsh) shell(and/or 终端模拟器)时,是否可以 运行 脚本?
我经常使用特定配置打开终端。在关闭它之前,我想被问到,以避免意外关闭它(经常发生)。
check/ask 的脚本很简单,但我想知道如何挂钩它。
如果 shell 是 login-shell,文件 ~/.zlogout
将被执行,因此您可以将命令放在那里。
对于其他情况,您可以设置一个 trap
命令来捕获 shell 的正常 exit
,或者可能会杀死您的 shell 的信号。除了通常的 trap
命令外,ZSH 还允许您定义 trap-functions(请参阅 zshmisc[=24= 中的 Trap Functions 部分] man-page)。例如,如果您定义了一个名为 TRAPEXIT
的函数,它会在 shell 退出时执行。
我不知道你的终端程序如何对待它产生的进程,所以如果你只是关闭终端,我不能说在硬杀死它之前先发送一个可捕获信号是否足够礼貌方式。