bash 手册说对于别名,
没有像 csh 中那样在替换文本中使用参数的机制。如果需要参数,则应使用 shell 函数(请参见第 3.3 节 [Shell 函数],第 17 页)。
这两句话是什么意思?
“在替换文本中使用参数”似乎并不意味着以下内容成功
$ alias foo="echo bac"
$ foo
bac
$ foo hello
bac hello
答案1
我想这个措辞并不完美,除非你接受它非常字面上地。 Bash 不会取代任何别名的带参数的文本;它会附加正如你所看到的,这与CSH 别名这扩大了论点里面替换文本。
第二句话,恕我直言,源于上述限制,并鼓励使用更灵活的函数定义而不是简单的别名。