如何让bash每次退出时都执行一个脚本?

时间:2013-04-25 13:52:57

标签: bash

我想在每次退出bash时执行一些命令,但找不到办法。 当你注销时有一个〜/ .bash_logout文件,但通常我们使用交互式shell而不是登录shell,所以这对于这个目的来说不是很有用。

有办法做到这一点吗?谢谢!

1 个答案:

答案 0 :(得分:5)

您可以捕获EXIT信号。

exit_handler () {
  # code to run on exit
}

trap 'exit_handler' EXIT

从技术上讲,trap exit_handler EXIT也可以。我引用它来强调trap的第一个参数是一个基本上传递给eval的字符串,而不一定是单个函数名。你可以轻松地写

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

而不是将您的代码收集到一个函数中。