防止bash自动执行我从历史记录中提取的命令

时间:2018-02-20 20:13:05

标签: bash

因为我是一名旧时tcsh用户,所以我倾向于使用感叹号,然后输入命令的第一个字来抓住我的bash历史记录。 。在tcsh上,这会导致它显示命令,但在bash上它运行命令,而没有给我机会编辑它。

有没有办法让bash向我显示命令而不用运行它?

1 个答案:

答案 0 :(得分:3)

使用:p修饰符仅打印命令:

$ echo foo
foo
$ !!:p
echo foo

还有两种方法可以在当前命令行上展开历史记录说明符,而不是立即执行它。

  1. Readline命令history-expand(默认绑定到M-^)会扩展当前命令行上的所有历史记录说明符。
  2. shell选项histverifyshopt -s histverify)在您按Enter键时将当前命令行的扩展放在下一个命令行上,而不是立即执行。
  3. 前面提到的两个允许您在执行命令之前进一步编辑结果命令。