在别名的替换文本中使用参数

在别名的替换文本中使用参数

bash 手册说对于别名,

没有像 csh 中那样在替换文本中使用参数的机制。如果需要参数,则应使用 shell 函数(请参见第 3.3 节 [Shell 函数],第 17 页)。

这两句话是什么意思?

“在替换文本中使用参数”似乎并不意味着以下内容成功

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

答案1

我想这个措辞并不完美,除非你接受它非常字面上地。 Bash 不会取代任何别名的带参数的文本;它会附加正如你所看到的,这与CSH 别名这扩大了论点里面替换文本。

第二句话,恕我直言,源于上述限制,并鼓励使用更灵活的函数定义而不是简单的别名。

相关内容