带输入的别名。的Unix

时间:2015-08-31 11:32:56

标签: linux shell unix alias csh

考虑以下命令。

grep -rn "someString" . --color

我希望在我的.cshrc中对其进行别名并执行以下命令:

myGrep someString 

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:2)

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

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

当您使用myGrep foo时,该双字命令会记录在历史记录中,然后会扩展为grep -rn !:1 . --color。在该命令中,!:1引用上一个命令的第一个参数(myGrep foo),产生grep -rn foo . --color,实际执行。

答案 1 :(得分:-2)

创建带参数的别名的正确方法是使用函数。在Bash函数中,参数被评估为$1$2等等。串联是隐含的。考虑:

hello() {
    echo 'Hello' $1
}

我只是这样称呼:

$ hello Eduard
Hello Eduard