擅长:python、mysql、java
<p><code>export</code>是一个直接给shell的命令(例如<code>bash</code>),告诉它添加或修改其中一个环境变量。不能从子进程(如Python)更改shell的环境,这是不可能的。</p>
<p>以下是你尝试<code>os.system('export MY_DATA="my_export"')</code>时发生的情况。。。</p>
<pre><code>/bin/bash process, command `python yourscript.py` forks python subprocess
|_
/usr/bin/python process, command `os.system()` forks /bin/sh subprocess
|_
/bin/sh process, command `export ...` changes local environment
</code></pre>
<p>当最底层的<code>/bin/sh</code>子进程完成运行您的<code>export ...</code>命令时,它将与您刚刚更改的环境一起被丢弃。</p>