在popen调用中扩展/替换变量

时间:2014-04-26 00:11:27

标签: python subprocess popen

我试图调用一些使用环境的shell程序,而我试图找出正确的方法。我归结为这个片段:

import subprocess as sp

p = sp.Popen(["echo","Hello","$FOO"], env = {"FOO":"42"}, stdout = sp.PIPE, shell = True)
p.wait()
print(p.communicate())

当" shell"设置为True它打印"(' \ n',无)"当它被设置为False时,它会打印"(' Hello $ FOO \ n',None)",但我希望它能打印出类似于& #34;('你好43 \ n',无)"。我做错了什么,有没有更好的方法呢?

1 个答案:

答案 0 :(得分:3)

试试这个:

p = sp.Popen("echo Hello $FOO", env={"FOO":"42"}, shell=True)

输出应为" Hello 42"