python subprocess env var in命令

时间:2017-08-22 14:51:04

标签: python-3.x subprocess

我试图在python中使用一个env变量 - 称为subprocess cmd。

我试过

myvar="myval"
echo $myvar
>>myval

python3:

import os
import subprocess
from subprocess import PIPE

env_vars = dict(os.environ)
task_cmd = "echo $myvar/stuff"
sp = subprocess.Popen(task_cmd, shell=True, stdout=PIPE, stderr=PIPE, universal_newlines=True, env=env_vars)
sp.communicate()

out:
>> ('/stuff\n', '')

如何使我的输出为('myval/stuff\n', '')

谢谢!

1 个答案:

答案 0 :(得分:1)

我想我看到了问题。 您应该export该变量传播到子进程。

尝试

export myvar="myval"