繁体   English   中英

试图学习BASH Shell源代码,但受环境变量加载的困扰

[英]Trying to learn the BASH Shell source code,but stuck with environment variables loading

我很好奇如何编写著名的Bourne shell。因此,我开始深入研究源代码。我了解到,bash所做的最初工作之一就是为用户env加载〜/ .bash_profile文件。 我的问题是它如何在当前shell中加载环境变量。

  1. 它会分叉并执行吗?
  2. 它是否读取bash_profile文件,是否对每个变量都放置一个putenv()?

在源代码bash-2.0/shell.c ,我找到了一个函数调用,

maybe_execute_file ("~/.bash_profile", 1);

即使进一步研究,我也无法获得有关如何在环境中推送值的确切逻辑。

都不-它不分叉地执行它(就像.或内置命令的source一样)。 如果首先分叉,则子shell中的环境变量更改将在原始父级中不可见。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM