删除后恢复历史记录

时间:2021-03-01 16:41:19

标签: bash readline

我用 Rust 编写了一个 ncurses 程序来管理您的 shell 历史记录。它列出了您的所有历史条目,并让您选择要执行或删除的条目,并将其回显到终端。当您选择一个条目并尝试删除它时,该命令将从程序中删除并且不再显示。为了确保它真的被删除了,我检查了它是否也从历史文件中删除了,看起来确实如此。当我 grep 删除的命令时,它不在历史文件中。但是,一旦我重新启动程序,命令就会再次出现。有些东西正在将删除的条目放回历史文件。如果我完全退出外壳,则不会发生这种情况-然后它就消失了。我应该提到我正在将输入作为 history | hstr-rs 管道输入到程序中,而不是直接操作历史文件。我搜索了 readline 联机帮助页,但找不到任何可能有帮助的内容。我遇到过 this,但它没有为我解决问题。

我为 readline 编写了 Rust 绑定,它包装了我需要删除的命令。删除看起来像这样:

free_entry(remove(idx)).expect("Unable to free history entry.");

然后我将历史写入历史文件。

有没有人知道是什么阻止了命令被永久删除?

0 个答案:

没有答案