单个感叹号对bash历史事件指示符意味着什么?

时间:2018-02-05 15:31:11

标签: linux bash

我刚刚在bash文档中了解了Event Designators,但!:gs/foo/bar也可以,!!:gs/foo/bar是否有效?文档说

  

!开始历史记录替换

所以这也意味着最后一个命令行被引用?或者!只是!string!:gs/foo/bar的{​​{1}}的边缘情况?仅供参考string相当于^old^new!!:s/old/new/相当于^old

1 个答案:

答案 0 :(得分:1)

section about Word Designators的末尾,手册说

  

如果提供的字指示符没有事件规范,则将上一个命令用作事件。

这意味着,如果仅使用!:2之类的指示符,则!:2将被解释为!!:2。 Word指示符是可选的,因此如果您仅使用修饰符(如!:gs/foo/bar示例中所示),则同样适用:扩展适用于上一个命令。