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

Shu*_*man 3 linux shell command csh

如命令

myCommand !* &
Run Code Online (Sandbox Code Playgroud)

&是在bg中运行,但是什么是!*?在任何地方都找不到,C shell如今不在任何地方使用...

Bar*_*mar 5

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

因此,如果您首先这样做:

echo foo bar baz
Run Code Online (Sandbox Code Playgroud)

然后做

myCommand !* &
Run Code Online (Sandbox Code Playgroud)

第二条命令等效于:

myCommand foo bar baz &
Run Code Online (Sandbox Code Playgroud)

如果这是别名定义的一部分,则“先前”命令实际上是别名的调用。所以如果你写

alias myc 'myCommand !* &'
Run Code Online (Sandbox Code Playgroud)

然后写

myc foo bar baz
Run Code Online (Sandbox Code Playgroud)

扩展为

myCommand foo bar baz &
Run Code Online (Sandbox Code Playgroud)