Gil*_*il' 54
别名和函数之间的主要区别在于别名不带参数¹,但函数带参数。当你写类似的东西时alias l='ls --color',l foo被扩展为ls --color foo; 你不能抓住foo别名扩展并用它做一些不同的事情,就像你可以用函数做的那样。另请参阅如何将参数传递给别名?.
在函数之前查找别名:如果您有一个函数和一个别名foo,则foo调用别名。(如果别名foo被扩展,它会被暂时阻止,这会使事情变得alias ls='ls --color'正常。此外,您可以随时通过运行绕过别名\foo。)不过,我不希望看到可测量的性能差异。
函数和独立脚本具有大部分相似的功能;以下是我能想到的一些差异:
介于函数和独立脚本之间的东西是您使用source或.内置脚本阅读的脚本片段。像函数一样,它可以修改shell的环境,并且必须用shell的语言编写。就像脚本一样,它每次被调用时都会加载,而且不会很快。
¹ 是的,我知道,这不适用于 tcsh。
| 归档时间: |
|
| 查看次数: |
10166 次 |
| 最近记录: |