简单命令的别名与导出

简单命令的别名与导出

对于像这样的简单命令less,是创建别名更好还是导出选项更好?其中一种比另一种有什么好处吗?

例如,如果我想less始终使用-R显示原始字符的选项,则这两种解决方案都有效:

  1. export LESS='-R'
  2. alias less='less -R'

对于像这样的简单案例,其中一种比另一种有什么好处吗?有没有一种情况会导致问题而另一种则不会的情况?

我已经读了好几infoman了,还用谷歌搜索了它,但我仍然坚持这一点。

答案1

两者之间的一个区别是别名只是 shell 功能。环境变量被所有子进程继承(除非故意清除)。

less即使是间接启动,例如通过另一个 shell(例如tcsh)、manvimpsql等,环境变量也更有可能起作用。

答案2

这很大程度上取决于您使用的工具。有些工具允许您使用其中任何一种,而另一些工具则只允许使用一种。

有些命令被其他人调用并读取环境变量并接受相同的开关,但是向每个命令添加相同的开关是一件麻烦的事情,就像编译器一样make,这里环境变量大放异彩。您设置了变量然后就忘记它了。它的另一个优点是它可以是临时的并且适用于单个命令。

底线是偏好和任务的最佳操作的问题,有时设置别名比环境变量更容易且永久,而有时您需要一系列与您的行为方式相同的工具喜欢环境变量。

相关内容