這裏的示例代碼:
user$ touch file.txt
user$ mate !$
「龍虎鬥」正在呼叫的TextMate文本編輯器,而第二個命令打開先前創建file.txt的。這是什麼!$語法?什麼!做? $做什麼?
這裏的示例代碼:
user$ touch file.txt
user$ mate !$
「龍虎鬥」正在呼叫的TextMate文本編輯器,而第二個命令打開先前創建file.txt的。這是什麼!$語法?什麼!做? $做什麼?
這是一個在各種shell歷史擴展或歷史替換中調用的shell特性。
以感嘆號開頭的單詞被先前執行的命令中的單詞替換。哪些詞和哪些命令,取決於詞的其餘部分。
在這個特定的例子中,美元符號指的是命令的最後一個單詞,並且由於在'!'之間沒有其他字符,和'$'被引用的命令是前一個,所以!$被替換爲prevoius命令的最後一個參數。
其他命令和單詞說明符存在於shell之間。
!$
在Bash shell中引用上一個命令中的最後一個單詞,這裏是file.txt
。
$
借用正則表達式和ed
/vi
命令語法,意思是「last」。
您可以在shell的文檔中找到它。
不幸的是,shell文檔通常不會顯示!
和$
字符在一起,這使得搜索!$
不必要的困難。 (該!
引入了歷史替換;在$
修改它,使得它指的只是最後一個字。)
對於tcsh,man tcsh
或訪問this page並搜索「歷史替換」。
對於bash,man bash
並搜索「歷史擴展」,或info bash
或訪問bash manual,特別是在history expansion和event designators的章節。