简单命令的别名与导出

ski*_*eys 37 bash zsh alias

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

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

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

对于这样一个简单的案例,一个比另一个有什么好处吗?任何一种会导致问题而另一种不会的情况?

我通过几个阅读infoman网页,还有谷歌搜索,但我仍然停留在此。

200*_*ess 33

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

即使less间接启动,环境变量也更有可能工作,例如通过另一个 shell(例如tcshmanvimpsql、 等。

  • 特别是,别名仅在 _interactive_ shell 中有效:您不能在 shell 脚本中使用它们,而有时您可能需要。`bash -c 'alias ll="ls -l"; ll'` 不会使用别名。 (4认同)