为什么bash
即使我没有执行我正在修改的命令也会更改历史记录?例如,如果我输入:
$ echo foo1
foo1
$ echo foo2
foo2
$ echo foo3
foo3
Run Code Online (Sandbox Code Playgroud)
在此之后,我按up两次,然后我得到echo foo2
提示。我按下2并得到echo foo22
。现在回到结尾(空行) downdown。如果我现在搜索历史记录,echo foo22
即使我从未执行过该命令,我也会看到!
但是,当我退出 shell 并打开另一个 shell 时,我看到了原始的、已执行的命令。我觉得这一切都非常令人困惑、违反直觉和令人恼火。
我希望历史事情像这样工作:
只有实际执行的命令才会保存到历史记录中。
历史是不可改变的。(除非明确清除。)
有没有办法做到这一点?
编辑 - 这个问题似乎相关:Is there any way to undo a bash history modified?