Linux / UNIX:注销时运行命令
我编写了一个 Perl 脚本,用于连接到我们的中央服务器,它允许我输入数据,以便我稍后制作时间表。当我使用 bash shell 从 Apple OS X 或 Linux / UNIX 工作站注销时,如何运行我的脚本?
几乎所有现代 shell(包括 bash)都允许您在注销时运行 run 命令。通常这用于:
- 使用清除命令清理屏幕。
- 删除历史记录和其他临时文件。
- 运行命令或脚本等等。
注销文件名
.logout 中的命令在您注销时运行。
- bash 外壳: ~/.bash_logout
- tcsh / csh:~/.logout
编辑 $HOME/.bash_logout 并添加您的命令:
$ vi ~/.bash_logout
示例注销配置:
if [ "$SHLVL" = 1 ]; then #clear screen [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q # delete mysql history [ -f $HOME/.mysql_history ] && /bin/rm $HOME/.mysql_history # Update ip accounting [ -x /usr/bin/ip_accouting ] && /usr/bin/ip_accouting -u "$USER" -a # call your script here [ -x /usr/local/bin/timesheet_client.pl ] && /usr/local/bin/timesheet_client.pl fi
关于 Old Shell 和 Bourne/KSH Shell 的说明
较旧的 UNIX shell 和 Bourne / ksh shell 没有注销文件。因此,编辑 ~/.profile 文件,输入:
$ vi ~/.profile
接下来添加以下行:
trap '. $HOME/.my_shell_logout; exit' 0
保存并关闭文件。最后创建$HOME/.my_shell_logout,输入:
$ vi $HOME/.my_shell_logout
示例配置
# call your script here if [ -f /usr/local/bin/timesheet_client.pl ] then /usr/local/bin/timesheet_client.pl fi