請考慮以下命令。帶輸入的別名。 Unix
grep -rn "someString" . --color
而且我想它的別名在我.cshrc
並執行這樣的命令:
myGrep someString
有沒有辦法做到這一點?
請考慮以下命令。帶輸入的別名。 Unix
grep -rn "someString" . --color
而且我想它的別名在我.cshrc
並執行這樣的命令:
myGrep someString
有沒有辦法做到這一點?
csh
在歷史列表擴展的別名之前,記錄您的命令,所以你可以使用歷史擴展,當它來訪問參數的別名用來。
% alias myGrep grep -rn \!:1 . --color
當您使用myGrep foo
,這兩個單詞的命令被記錄在歷史上,然後將其擴展爲grep -rn !:1 . --color
。在該命令中,!:1
引用前一個命令(myGrep foo
)的第一個參數,導致grep -rn foo . --color
,這被實際執行。
使用函數來生成帶參數的別名的正確方法是使用函數。在Bash函數中,參數評估爲$1
,$2
等等。串聯串聯是隱含的。試想一下:
hello() {
echo 'Hello' $1
}
我簡稱爲這樣的:
$ hello Eduard
Hello Eduard
'csh'沒有功能。 – chepner
使用功能。 – Cyrus
你試過別名mygrep ='grep東西.....' –
'csh'沒有函數,這就是別名可以接受參數的原因。 (或者''csh'沒有函數*因爲別名可以接受參數;我不確定這裏的原因和結果。) – chepner