进一步阅读

进一步阅读

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

例如HISTIGNOREPATHPS1、 等...位于“Bash 部分”和MANPAGER“Man 部分”上。

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

答案1

你分类错误PATH了,两者EDITORVISUAL属于它。

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

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

等等。

相比之下,HISTIGNOREandPS1甚至根本不需要环境变量;标准中甚至只提到了后者(尽管没有解释)。一在会话领导进程或其他顶级父进程中将它们设置为环境变量,并依靠环境继承来让 shell 导入它们。

但一个人可以反而只需将它们设置为变量,在每个 shell 自动执行的脚本中(具体取决于 shell),而不是将它们导出到环境中。例如:我有我的~/.zshrc集合PS1RPROMPT变量,它们是不是导出为环境变量。

进一步阅读

答案2

man bash提到了以下两个变量edit-and-execute-command

在当前命令行上调用编辑器,并将结果作为 shell 命令执行。 Bash 尝试按顺序调用$VISUAL$EDITOR、 和作为编辑器。emacs

其他程序也经常使用这些变量。

相关内容