python - 如何在 python 中导入已完成进程的环境变量?

标签 python unix shell environment-variables

我需要编写一个 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/

相关文章:

unix - 如何使用在 UNIX 上运行的 TFS 命令行客户端创建新的 Windows 工作区

bash - 如果任何命令失败,最后以非零代码退出 shell 脚本

mongodb - 链接 shell 命令 golang

linux - 让程序在命令行立即返回,这样它就不会绑定(bind)到启动它的 shell

python - Flask socket IO 从另一个模块发出

python - python中元组列表中的随机值

python - Django - AttributeError : 'NoneType' object has no attribute 'first_name'

linux - 我如何判断 SIGILL 是来自非法指令还是来自 kill -ILL?

python - 具有多个参数的 app_template_filter

regex - Python Fabric - 在带空格的目录中删除与模式匹配的文件?