在Bash退出之前运行脚本
我希望每次关闭Bash会话时都运行一个脚本 我使用XFCE和终端0.4.5(XFCE终端仿真器),我希望在每次关闭终端中的选项卡(包括最后一个)时运行脚本(当我关闭终端时) 类似于.bashrc,但在每个会话结束时运行在Bash退出之前运行脚本,bash,exit,xfce,Bash,Exit,Xfce,我希望每次关闭Bash会话时都运行一个脚本 我使用XFCE和终端0.4.5(XFCE终端仿真器),我希望在每次关闭终端中的选项卡(包括最后一个)时运行脚本(当我关闭终端时) 类似于.bashrc,但在每个会话结束时运行 .bash_注销不起作用如果您使用“退出”关闭会话,可能会出现以下情况 alias endbash=“./runscript;exit”只需输入endbash退出即可。我不完全确定这是否有效,因为我目前正在运行windows 编辑:DVK有一个更好的答案。您使用的是trap(请参
.bash_注销不起作用如果您使用“退出”关闭会话,可能会出现以下情况
alias endbash=“./runscript;exit”
只需输入endbash退出即可。我不完全确定这是否有效,因为我目前正在运行windows
编辑:DVK有一个更好的答案。您使用的是trap
(请参见manbash
):
该命令可以添加到您的.profile/.login
无论您是正常退出shell(例如,通过exit
命令)还是简单地关闭终端窗口/选项卡,这都是有效的,因为shell以任何方式获得exit
信号-我只是通过退出putty窗口进行测试。在“~/.bash\u logout”中编写脚本。当登录shell退出时,它由bash(1)执行。我的答案与类似,但您必须使用命令或函数,而不是文件
$ man bash
[...]
trap [-lp] [[arg] sigspec ...]
The command arg is to be read and executed when the shell
receives signal(s) sigspec.
[...]
If a sigspec is EXIT (0) the command arg is executed on
exit from the shell.
因此,您可以向.bashrc
添加类似以下代码的内容:
finish() {
# Your code here
}
trap finish EXIT
请注意,这仅在bash作为登录shell执行时有效,例如,如果您通过SSH登录,或者在gnome终端的配置文件首选项中选中“作为登录shell运行命令”。
finish() {
# Your code here
}
trap finish EXIT