陷阱 gnome-terminal 关闭按钮

陷阱 gnome-terminal 关闭按钮

我可以使用 Bashexit命令从窗口捕获命令,但只有当用户在终端窗口中键入时,它才有效。如果用户点击关闭按钮,则不会执行陷阱退出处理程序。gnome-terminaltrapexit

背景信息: 我想在用户单击“关闭”按钮时将 Bash 历史记录保存到自定义历史记录文件中。我已经使用过export HISTFILE=/tmp/custom.hist,这在很多情况下都有效(当用户单击 gnome-terminal 中的“关闭”按钮时,历史记录将保存到给定的文件中),但在某些情况下历史记录不会被保存,因此我正在寻找设置HISTFILE环境变量的替代方法。

答案1

您想捕获SIGHUP;

man 7 signal

SIGHUP        1       Term    Hangup detected on controlling terminal or death of controlling process

因此,要捕获 SIGHUP 和 EXIT:

trap 'export HISTFILE=/tmp/custom.hist' 1 EXIT

或者:

trap 'export HISTFILE=/tmp/custom.hist' SIGHUP EXIT

答案2

您可以在每条命令后保存历史文件。此技巧通常用于同步多个窗口的历史记录,但在您的案例中也适用。例如,这个答案

相关内容