在別名的替換文字中使用參數

在別名的替換文字中使用參數

bash 手冊說對於別名,

沒有像 csh 中那樣在替換文字中使用參數的機制。如果需要參數,則應使用 shell 函數(請參閱第 3.3 節 [Shell 函數],第 17 頁)。

這兩句話是什麼意思?

「在替換文字中使用參數」似乎並不意味著以下內容成功

$ alias foo="echo bac" 
$ foo
bac
$ foo hello
bac hello

答案1

我想這個措辭並不完美,除非你接受它非常字面上地。 Bash 不會取代任何別名的帶參數的文字;它會附加如您所見,文字的參數。這與CSH 別名這擴大了論點裡面替換文字。

第二句話,恕我直言,源自於上述限制,並鼓勵使用更靈活的函數定義而不是簡單的別名。

相關內容