什么应用程序拥有 $EDITOR 和/或 $VISUAL 变量?

cev*_*ruz 1 bash environment-variables

我正在整理我的 bash 导出文件并根据变量所属的环境对变量进行分类。

例如HISTIGNOREPATH, PS1, 等.. 在“Bash Section”和MANPAGER“Man Section”上..

我只是想知道 $EDITOR 和/或 $VISUAL 怎么样?我似乎无法在 bash 手册页上找到它们。

Jde*_*eBP 10

你已经误判PATH两者EDITORVISUAL用它的归属。

这些变量属于特定应用程序的想法是错误的。它们是标准化的,并且可能被任何需要它们的应用程序使用。

  • 如果任何应用程序想要搜索可执行程序的路径,它可以使用PATH. (实际上,任何调用 的应用程序都是这种情况execvp()。)
  • 如果任何应用程序想要调用外壳程序,它可以SHELL用来查找程序映像文件。
  • 如果任何应用程序想要调用行编辑器,它可以使用EDITOR.
  • 如果任何应用程序想要调用可视化编辑器,它可以使用VISUAL.
  • 如果任何应用程序想要调用寻呼机,它可以使用PAGER.
  • 如果任何应用程序想知道主目录在哪里,它可以使用HOME.

等等。

相比之下,HISTIGNOREPS1甚至不真正需要的是在所有的环境变量; 标准中甚至只提到了后者(尽管没有解释)。一个可以将它们设置为环境变量,在会话过程中的领导者或以其他顶级父,并依靠环境遗产,让他们进口被炮弹。

但一个可以代替只是将它们设置为外壳的变量,在脚本自动每个shell(从shell视具体情况)执行,而不是将其导出到环境中。例如:我有我的~/.zshrcsetPS1RPROMPTas shell变量,它们根本没有导出为环境变量。

进一步阅读