簡體   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