考虑以下命令。
grep -rn "someString" . --color
我希望在我的.cshrc
中对其进行别名并执行以下命令:
myGrep someString
有办法做到这一点吗?
答案 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