有什么用!!做?

Tim*_*Tim 2 command-line

我可以运行这样的命令:

tim@Hairy:~$ echo Hello
Hello
Run Code Online (Sandbox Code Playgroud)

然后我就可以运行命令了!!它再次这样做:

tim@Hairy:~$ !!
echo Hello
Hello
Run Code Online (Sandbox Code Playgroud)

我什至可以使用前面命令的另一个参数来运行它:

tim@Hairy:~$ !! World
echo Hello World
Hello World
Run Code Online (Sandbox Code Playgroud)

那么!!实际在做什么呢?我一直在努力寻找它,因为Google for!!是相当......毫无意义的

mur*_*uru 10

这是bash 历史交互的一部分。

  • A!!按原样替换为最后一个命令。
  • A!foo替换为最后一个以 开头的命令foo
  • A!^或 a!$分别替换为前一个命令中的第一个或最后一个参数。
  • A替换为历史中的第n个命令。!n
  • A替换为历史记录中的第n个最后一个命令。!-n
  • ...