如何执行shell命令,可以像bash命令行中的普通命令那样复杂,在执行后获取该命令和pwd的输出?如何执行shell命令在Python中的命令后获取输出和pwd
我用这样的功能:
import subprocess as sub
def execv(command, path):
p = sub.Popen(['/bin/bash', '-c', command],
stdout=sub.PIPE, stderr=sub.STDOUT, cwd=path)
return p.stdout.read()[:-1]
我检查,如果用户使用cd
命令,但是当用户使用符号连接到CD或其他奇怪的方式来改变目录,将无法正常工作。
,我需要如果您使用subprocess.Popen
持有{'cwd': '<NEW PATH>', 'result': '<COMMAND OUTPUT>'}
我试试吧,还有的/ proc//cwd目录,代码需要检查,它可以使用'ls'或'file'(和解析结果)来做到这一点,但是当代码执行那些命令时cwd不再可读,因为过程结束了。因此,您需要在执行命令后添加睡眠命令。更好的是只是运行pwd。 –
jcubic