输入的别名。 Unix

Alias with input. Unix

考虑以下命令。

grep -rn "someString" . --color

我想在我的 .cshrc 中为其添加别名并执行如下命令:

myGrep someString 

有办法吗?

创建带参数的别名的正确方法是使用函数。在 Bash 函数中,参数被评估为 </code>、<code> 等等。串接是隐式的。考虑:

hello() {
    echo 'Hello' 
}

我就是这样叫的:

$ hello Eduard
Hello Eduard

csh 在扩展别名之前将您的命令记录在其历史列表中,因此您可以在使用别名时使用历史扩展来访问别名的参数。

% alias myGrep grep -rn \!:1 . --color

当你使用myGrep foo时,那个两个词的命令被记录在历史中,然后它被扩展为grep -rn !:1 . --color。在该命令中,!:1 引用前一个命令 (myGrep foo) 的第一个参数,导致实际执行的 grep -rn foo . --color