如何将命令添加到 Bash 历史记录中而不执行它?

如何将命令添加到 Bash 历史记录中而不执行它?

有时,将命令直接添加到 Bash 的历史记录中而不实际执行它会很有用。到目前为止,我发现最不可行的方法是#在命令前面添加一个并按回车键。有没有更好的方法?

答案1

history -s 命令

答案2

history -s 命令

您甚至可以绑定一个按键来为您执行此操作。您可以在 Bash 提示符下输入以下内容:

bind '"\C-q": "\C-a history -s \C-j"'

或者将其添加到您的~/.inputrc

"\C-q": "\C-a history -s \C-j"

然后你可以输入一些内容并按Ctrl- q,它将被添加到历史记录中而不会被执行。“history”之前的空格会导致命令history本身不是HISTCONTROL如果变量包含ignorespace或 ,则将其添加到历史记录中ignoreboth。可以选择另一个按键来代替“\Cq”。

答案3

很难想出比一个字符“命令”更短的命令,所以我们真的需要进入按键级别。使用我的 bash 设置和美国键盘,您现在需要执行的操作是:

  1. 转到行首::CTRLA+1 指令,+2 按键
  2. 添加#(需要SHIFT):+1 指令,+2 按键
  3. 将其附加到历史记录中ENTER:+1 指令、+1 按键

所以总共有 3 条指令,5 次按键。

只需 1 条指令、2 次按键即可完成ALT#相同操作。

YMMV,取决于您的键盘布局和 bash 配置。

答案4

有时甚至从子进程中添加命令也很有用(这会导致丢失当前命令):

echo "the command" >> ~/.bash_history

相关内容