shell启动进程与父进程环境的关系

shell启动进程与父进程环境的关系

“shell 变量与 shell 启动的进程启动时的环境有何关系?”

我读如果进程继承了父进程的环境,为什么我们需要导出?

我目前可能错误的理解是 shell 变量不在环境中。变量必须导出到环境中,以便孩子可以从父母那里继承它们,但我不知道启动在哪里发挥作用。

答案1

您目前对“变量必须导出到环境中,以便孩子可以从父母那里继承它们”的理解对我来说似乎是正确的。

除了 shell 之外的进程也有环境变量,其 C 语言接口是getenv()and setenv(), from stdlib.h。 Unix、Linux 和 *BSD 操作系统 shell 恰好使环境变量看起来像普通的、非继承的 shell 变量。

所以我想您的具体问题的答案是:只有导出到 shell 环境的 shell 变量才会显示在子进程的环境中。

相关内容