我试图做一个简单的命令,将让我在Python完全运行bash中,包括输出字符串。
这个功能对我在工作中使用的系统工作很大:
import subprocess
def run(command):
output = subprocess.check_output(command, shell=True)
return output
不过,现在我使用它在国内和PATH变量不匹配,一个在我的终端。
所以,当我执行
run('ls')
我得到这个:
/bin/sh: ls: command not found
这是有道理的,因为胡说,在路上,我从运行得到
print run('/usr/bin/env')
是
PATH=/Library/Frameworks/Python.framework/Versions/Current/bin/
现在,我可以通过弥补这一切:
run('/bin/ls')
但是,这违背了使用该命令,它是忠实地模拟的全部目的bash
壳。
如何让我的run()使用系统的PATH或创建一个可以工作的同等功能?
(有关使用的危险也没有陈词滥调'shell=True'
,请,这是一个像无害的命令,所有个人使用ls
和ps axw
)。