“shell 变量与 shell 启动的进程启动时的环境有何关系?”
我目前可能错误的理解是 shell 变量不在环境中。变量必须导出到环境中,以便孩子可以从父母那里继承它们,但我不知道启动在哪里发挥作用。
答案1
您目前对“变量必须导出到环境中,以便孩子可以从父母那里继承它们”的理解对我来说似乎是正确的。
除了 shell 之外的进程也有环境变量,其 C 语言接口是getenv()
and setenv()
, from stdlib.h
。 Unix、Linux 和 *BSD 操作系统 shell 恰好使环境变量看起来像普通的、非继承的 shell 变量。
所以我想您的具体问题的答案是:只有导出到 shell 环境的 shell 变量才会显示在子进程的环境中。