在tcsh shell中,!*是什么意思?

4
例如命令
myCommand !* &

& 运行在后台,但是 !* 是什么?我无法在任何地方找到它,c shell 已经不再使用了...


1
如果你搜索足够多的 !,它在 csh man page 中有记录。 - Etan Reisner
你是对的,但是我阅读手册后仍然不理解。但下面的答案让一切都清晰明了。 - Shuman
1个回答

7

!是历史替换的开始。!*表示“前面命令的所有参数”。

所以如果你先执行:

echo foo bar baz

然后执行

myCommand !* &

第二个命令等同于:
myCommand foo bar baz &

如果这是别名定义的一部分,"preceding" 命令实际上是别名的调用。因此,如果您写下:
alias myc 'myCommand !* &'

然后是编写代码

myc foo bar baz

被扩展为

myCommand foo bar baz &

为什么如果我执行 echo foo bar 然后执行 echo !*,我会得到 echo foo bar (换行) foo bar?为什么不只是 foo bar - undefined
当你输入一个带有历史记录的命令时,它会显示带有历史记录填充的命令。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接