gpt4 book ai didi

python - 如何在python中读取从shell脚本导出的变量

转载 作者:太空宇宙 更新时间:2023-11-03 15:10:27 27 4
gpt4 key购买 nike

我有两个脚本
1.demo.ksh
2.demo.py

在 demo.ksh 中,我将变量导出为

#!/bin/ksh
TEST="Hello"
export TEST

在 demo.py 中,我正在执行 demo.ksh 并尝试将导出的值读取为 ..

import os
import subprocess
cmd='. demo.ksh' #I even tried 'demo.py' (no .)
subprocess(cmd,shell=True,stdout=subprocess.PIPE)
print(os.getenv('TEST'))
print(os.environ['TEST'])

我期待着

Hello
Hello

但是得到

None
KeyError: 'TEST'

虽然这是一个简单的练习。我找不到正确的解决方案。请帮助我我的代码有什么问题。

最佳答案

导出变量使其可用于生成的 shell 进程的子进程,但不可用于父进程(即您的 Python 程序)。

要获得预期的输出,请尝试使用如下 shell 脚本:

#!/bin/ksh

TEST="Hello"
export TEST
python demo.py

您可以通过 STDOUT 与子进程通信。为此,subprocess.check_output可能会有用。

关于python - 如何在python中读取从shell脚本导出的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44242860/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com