从python设置的环境变量在shell脚本中不可见



我有一个设置环境变量的python脚本。我从shell脚本运行这个python脚本,期望读取python脚本设置的环境变量的值。

#Python脚本-x.py#

import os
os.environ['FRUIT'] = 'APPLE'

#外壳脚本-x.sh#

python -c "import x"
echo $FRUIT

但这似乎并不奏效。shell脚本不会打印任何内容。谁能解释一下为什么会这样,以及如何解决这个问题吗?

Python脚本中设置的环境变量将仅在Python脚本启动的进程中可见,因为这就是环境变量的工作方式。你不能在别人的过程中更改环境变量。没有办法";"修复";因为它是这样设计的。

如前所述,由于流程边界的原因,您无法真正做到这一点。然而,如果你绝对必须这样做(我真的不建议这样做(,有一些巧妙的方法。这里有一个例子,作者让shell评估来自Python的命令,这些命令恰好是导出命令。这很巧妙,但实际上,不要这么做。重新考虑是否通过环境变量进行信息交换。

最新更新