
bash 手冊說對於別名,
沒有像 csh 中那樣在替換文字中使用參數的機制。如果需要參數,則應使用 shell 函數(請參閱第 3.3 節 [Shell 函數],第 17 頁)。
這兩句話是什麼意思?
「在替換文字中使用參數」似乎並不意味著以下內容成功
$ alias foo="echo bac"
$ foo
bac
$ foo hello
bac hello
答案1
我想這個措辭並不完美,除非你接受它非常字面上地。 Bash 不會取代任何別名的帶參數的文字;它會附加如您所見,文字的參數。這與CSH 別名這擴大了論點裡面替換文字。
第二句話,恕我直言,源自於上述限制,並鼓勵使用更靈活的函數定義而不是簡單的別名。