python - 如何获取Popen中的shell变量值

标签 python python-2.7 subprocess popen

我正在尝试使用环境变量将一些 secret 传递给 shell 命令。 Popen 似乎使用“单引号概念”来转义参数,因此命令无法获取变量值。

Python 2.7.1 (r271:86832, Mar  3 2017, 10:25:58) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux3
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> subprocess.Popen(['echo','$PATH'])
$PATH

预期输出是真实的 $PATH 值,如“/bin:/sbin:/usr/bin...”

谢谢!

最佳答案

您需要一个 shell 来评估您的线路:

subprocess.Popen('echo $PATH', shell=True)

但如果这就是您想要的,那么考虑一下:

print os.getenv('PATH')

关于python - 如何获取Popen中的shell变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42646134/

相关文章:

python - 慢速 FuncAnimation 脚本

python - 在 Tornado 中禁用静态文件缓存

python - 有条件地应用 Flask-HTTPAuth 的 login_required 装饰器

python - 我的新行回显命令不起作用

python - 在返回最后一次迭代的for循环中生成字典

python - 我是否需要研究子进程才能使此 python 源代码在另一种编程语言中工作?

python - 将 tensorflow 估计器转换为 SavedModel 时出错

python - 在 Spyder 上分析代码 (pylint) 时出错

Python子进程: callback when cmd exits

python - 等待进程结束,该进程由名为