bash 历史记录已附加,但 histappend 已关闭

bash 历史记录已附加,但 histappend 已关闭

我在 ubuntu 10.4 上,我的 shell 是bash。当我打开几个 gnome 终端并关闭它们时,历史记录已正确附加。当我输入时,shopt它显示以下内容:

histappend      off

有人能告诉我附加行为在哪里配置吗?

答案1

bash尝试尽可能多地附加历史记录。启用histappend此选项,您将确保始终附加历史记录。如果关闭此选项,则仍会附加历史记录,直到您在交互式bash会话中输入的命令数大于HISTSIZE。当发生这种情况时,历史记录将被覆盖。

如果您想明确覆盖历史记录,您可以使用history -w.bash_logout退出陷阱。

我在这个帖子中发布了更多细节回答关于bash历史记录附加的工作原理。

答案2

histappend是我希望控制这一点的设置。由于这些不是登录 shell,因此不会在/etc/bash.bash.logout或中发生任何事情~/.bash_logout。通过输入 来检查是否设置了陷阱trap -p。还可以执行echo $PROMPT_COMMAND来查看那里是否发生了什么事情。

答案3

我写了一个小建议关于在我的网站上设置 histappend,但我会在这里解释该帖子,希望能回答您的问题。

您应该能够使用 shopt 将 histappend 配置为“on”。

启用运行

shopt -s histappend

禁用运行

shopt -u 附加

这有帮助吗?

相关内容