我有一个环境变量,让我们说PATH,我想用Popen方法回显。我的第一次尝试是使用os.environ如下:
from subprocess import Popen, PIPE
import os
x = Popen(['echo', os.environ["PATH"]], stdout=PIPE)
result = x.communicate()[0]
print result
并且输出符合预期:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
不幸的是,我的要求是将环境变量的名称传递给Popen,如下面的代码段所示:
x = Popen(['echo', "$PATH", stdout=PIPE)
这是我在stdout中获得的而不是变量内容:
$PATH
我也尝试在Popen中设置env参数,但无济于事:
x = Popen(['echo', "$PATH", stdout=PIPE, env=os.environ)
有没有办法用$ sign和变量名调用Popen方法,所以它仍然可以用作子进程中的变量?