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

Tim*_*Tim 0 environment-variables

来自 APUE

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

在此处输入图片说明

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

谢谢。

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

Ste*_*itt 5

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

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

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

正如总是“放入环境”必须理解为影响相关进程树(使用变量集创建的子进程),没有全局环境。