2016-02-12 256 views
-1

这个命令做什么?Shell感叹号命令

!g++ 

为history命令:

!12 

它运行的历史命令#12,但对于g++,或其他:

!cat filename 
+0

错误的网站。 StackOverflow用于编程问题,而不是用法。 – tink

+0

https://www.gnu.org/software/bash/manual/bashref.html#Event-Designators –

+0

@tink使用命令行不完全是编程...但无论如何感谢。 –

回答

2

Bash manual, "Event Designators"

!string

请参考以string开头的历史列表中当前位置之前的最新命令。

这意味着!g++运行与g++开始的最后一个命令,调用GNU C++编译器:

$ g++ -o myprog -flto -O3 foo.o bar.o baz.o -lgfortran 
... 
(g++ does its job here) 
... 
$ vim test 
... 
(other commands) 
... 
$ !g++ 
g++ -o myprog -flto -O3 foo.o bar.o baz.o -lgfortran <-- same command as before 

!cat filename,另一方面手,不使一个很大的意义,因为它是已一个完整的命令。除非上次命令之后有一个超级复杂的管道,当然,事件指示符会重复。