在unix中打开文件时,“!$”语法是什么意思?

时间:2012-03-10 21:30:23

标签: unix

以下是示例代码:

user$ touch file.txt
user$ mate !$

“mate”正在调用textmate文本编辑器,第二个命令打开以前创建的file.txt。这是什么!$语法?什么呢!做? $做什么?

3 个答案:

答案 0 :(得分:2)

!$,在Bash shell中,引用上一个命令中的最后一个单词,file.txt

$借用正则表达式和ed / vi命令语法,意为“最后”。

答案 1 :(得分:2)

这是在各种shell历史记录扩展或历史记录替换中调用的shell功能。

以感叹号开头的单词将替换为先前执行的命令中的单词。哪些单词和哪些命令,取决于单词的其余部分。

在这个特定的例子中,美元符号是指命令的最后一个字,因为'!'之间没有其他字符。和'$'引用的命令是前一个命令,所以!$被替换为prevoius命令的最后一个参数。

在shell之间存在哪些其他命令和单词说明符有所不同。

答案 2 :(得分:0)

您可以在shell的文档中找到它。

不幸的是,shell文档通常不会同时显示!$个字符,这使搜索!$变得不必要。 (!引入了历史记录替换; $修改了它,使其仅指最后一个词。)

对于tcsh,man tcsh或访问this page并搜索"历史记录替换"。

对于bash,man bash并搜索" HISTORY EXPANSION"或info bash或访问bash manual,特别是history expansion和{{}}部分{3}}