我正在整理我的 bash 导出文件并根据变量所属的环境对变量进行分类。
例如HISTIGNORE
, PATH
, PS1
, 等等.. 在“Bash 部分”和MANPAGER
“Man 部分”..
我只是想知道 $EDITOR 和/或 $VISUAL 怎么样?我似乎无法在 bash 手册页上找到它们。
我正在整理我的 bash 导出文件并根据变量所属的环境对变量进行分类。
例如HISTIGNORE
, PATH
, PS1
, 等等.. 在“Bash 部分”和MANPAGER
“Man 部分”..
我只是想知道 $EDITOR 和/或 $VISUAL 怎么样?我似乎无法在 bash 手册页上找到它们。
你分类错误
PATH
,两者都EDITOR
属于VISUAL
它。这些变量属于特定应用程序的想法是错误的。它们是标准化的,并且可能被任何需要它们的应用程序使用。
PATH
. (事实上,任何调用 . 的应用程序都是如此execvp()
。)SHELL
用来查找程序映像文件。EDITOR
.VISUAL
.PAGER
.HOME
.等等。
相比之下,
HISTIGNORE
甚至PS1
根本不需要成为环境变量;标准中甚至只提到了后者(尽管没有解释)。可以将它们设置为环境变量,在会话领导进程或其他一些顶级父进程中,并依靠环境继承让它们由 shell 导入。但是可以改为将它们设置为shell变量,在每个 shell 自动执行的脚本中(具体取决于 shell),而不是将它们导出到环境中。例如:我有我的
~/.zshrc
setPS1
和RPROMPT
as shell变量,它们根本没有导出为环境变量。进一步阅读
execvp()
. 系统接口。单一 UNIX 规范。IEEE 1003.1。2018. 公开组。man bash
提到了以下两个变量edit-and-execute-command
:其他程序也经常使用这些变量。