我需要编写一个 python 脚本来启动 shell 脚本并在脚本完成后导入环境变量。
假设您有一个 shell 脚本“a.sh”:
export MYVAR="test"
在 python 中我想做这样的事情:
import os
env={}
os.spawnlpe(os.P_WAIT,'sh', 'sh', 'a.sh',env)
print env
并得到:
{'MYVAR'="test"}
这可能吗?
最佳答案
不,对子进程中的环境变量所做的任何更改都保留在该子进程中。 (据我所知,就是)当子进程终止时,它的环境就丢失了。
我建议让 shell 脚本打印它的环境,或者至少是你关心的变量,到它的标准输出(或标准错误,或者它可以将它们写入文件),你可以读取该输出来自 Python。
关于python - 如何在 python 中导入已完成进程的环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3108951/