Python中os.environ的Shell等价性?

Python中os.environ的Shell等价性?,python,python-3.x,bash,shell,Python,Python 3.x,Bash,Shell,做 导出到所有子进程还是仅导出到当前进程?换句话说,以下哪项等同于 os.environ["MYVAR"] = 'hello' 或 环境是一个与过程相关的概念。当任何程序(无论是shell脚本、python脚本、C程序等)执行fork时,都会复制环境。 由于os.environ在分配变量时修改父进程的环境,因此,是的,之后使用fork()创建的子进程将接收更改的环境。这相当于shell中的export NAME=VALUE。您的实验显示了什么?根据onos.environ,

导出到所有子进程还是仅导出到当前进程?换句话说,以下哪项等同于

os.environ["MYVAR"] = 'hello'


环境是一个与过程相关的概念。当任何程序(无论是shell脚本、python脚本、C程序等)执行fork时,都会复制环境。
由于
os.environ
在分配变量时修改父进程的环境,因此,是的,之后使用fork()创建的子进程将接收更改的环境。这相当于shell中的
export NAME=VALUE

您的实验显示了什么?根据on
os.environ
如果平台支持putenv()函数,此映射可用于修改环境以及查询环境。修改映射时将自动调用putenv()。
这是否回答了您的问题?您可以通过生成子进程来找到答案。但是,请注意,可以向Popen和friends传递自定义环境映射(它是一个关键字arg),也就是说,仅仅因为python生成了子进程,并不意味着它必须继承父环境。因此,用环境条目标识shell变量是非常错误的,尽管这样做很普遍。(某些)shell变量是从环境中初始化的,但它们本身不是环境条目。对导出内容的修改与环境同步。@JohnBollinger谢谢,为了更清楚地表达这一点,我补充了我的答案。
export MYVAR=hello
MYVAR=hello