对于像这样的简单命令less
,是创建别名更好还是导出选项更好?其中一种比另一种有什么好处吗?
例如,如果我想less
始终使用-R
显示原始字符的选项,则这两种解决方案都有效:
export LESS='-R'
alias less='less -R'
对于像这样的简单案例,其中一种比另一种有什么好处吗?有没有一种情况会导致问题而另一种则不会的情况?
我已经读了好几info
页man
了,还用谷歌搜索了它,但我仍然坚持这一点。
答案1
两者之间的一个区别是别名只是 shell 功能。环境变量被所有子进程继承(除非故意清除)。
less
即使是间接启动,例如通过另一个 shell(例如tcsh
)、man
、vim
、psql
等,环境变量也更有可能起作用。
答案2
这很大程度上取决于您使用的工具。有些工具允许您使用其中任何一种,而另一些工具则只允许使用一种。
有些命令被其他人调用并读取环境变量并接受相同的开关,但是向每个命令添加相同的开关是一件麻烦的事情,就像编译器一样make
,这里环境变量大放异彩。您设置了变量然后就忘记它了。它的另一个优点是它可以是临时的并且适用于单个命令。
底线是偏好和任务的最佳操作的问题,有时设置别名比环境变量更容易且永久,而有时您需要一系列与您的行为方式相同的工具喜欢环境变量。