POSIX 为 shell 定义的环境变量,还是为任何不一定运行 shell 的进程定义的环境变量?

POSIX 为 shell 定义的环境变量,还是为任何不一定运行 shell 的进程定义的环境变量?

来自APUE

某些环境变量是由 Single UNIX 规范中的 POSIX.1 定义的,而其他环境变量仅在支持 XSI 选项时才定义。图 7.7 列出了 Single UNIX 规范定义的环境变量,并注明了哪些实现支持这些变量。 POSIX.1 定义的任何环境变量都标有 •;否则,它是 XSI 选项的一部分。本书描述的四种实现中使用了许多附加的依赖于实现的环境变量。请注意,ISO C 没有定义任何环境变量。

在此输入图像描述

POSIX 为 shell 定义的环境变量,还是为任何不一定运行 shell 的进程定义的环境变量?

谢谢。

我的帖子的灵感来自默认环境变量是什么?

答案1

他们是定义的对于任何流程,但他们不必存在在任何过程中(作为一般规则)。

POSIX 赋予意义到许多环境变量。它应该被视为一本字典;在 POSIX 中定义变量这一事实并不意味着它必须存在(除非它的定义这么说),但如果该变量存在于任何进程的环境中,则必须理解它的值(并且,对于一致的实用程序,其中根据 POSIX 定义,它是相关的、已采取行动的。

如果以下两节中的变量在应用程序或实用程序执行期间出现在环境中,则应赋予它们如下所述的含义。有些是在用户登录时通过实现放置到环境中的;用户或当前进程的任何祖先都可以添加或更改所有内容。

与往常一样,“放置到环境中”必须被理解为影响相关的进程树(使用变量集创建的子进程),因此不存在全局环境。

相关内容