我正在使用subprocess.check_output()方法从python脚本中执行命令.
有一些命令需要在语法中出现"(双引号).这是一个例子:
>drozer console connect -c "run app.package.info -a com.package.name"
Run Code Online (Sandbox Code Playgroud)
如果我们从上面的命令中删除"(双引号)",它会抛出错误.
我做了以下事情:
string = '\"run app.package.info -a com.package.name\"'
command = ['/usr/bin/drozer','console','connect','-c',string]
output = subprocess.check_output(command)
Run Code Online (Sandbox Code Playgroud)
这让我错误:
*** Unknown syntax: "run app.package.info -a com.package.name"
Run Code Online (Sandbox Code Playgroud)
请注意:没有引号的命令正在通过subprocess.check_output运行,因此代码可以正常工作.
我怎样才能解决这个引号问题?任何帮助将受到高度赞赏.
谢谢
你不需要双引号.
使用shell命令需要它们的原因是shell正在从字符串解析命令行,并使用它们作为文本run app.package.info -a com.package.name应放在单个参数中的指示:
#!/usr/bin/env python
import subprocess
c_arg = 'run app.package.info -a com.package.name'
command = ['/usr/bin/drozer', 'console', 'connect', '-c', c_arg]
output = subprocess.check_output(command)
print("Got %r" % (output,))
Run Code Online (Sandbox Code Playgroud)
当您使用代码启动进程时,您明确指定了各个参数,并且没有进行shell解析,因此不需要额外的引号.
| 归档时间: |
|
| 查看次数: |
2180 次 |
| 最近记录: |