python - 在 python 脚本中使用 bash 命令时遇到问题

标签 python linux bash tcpdump

我正在尝试将 bash 脚本转换为 python,但某些命令似乎没有按照我希望的方式执行。基本上,脚本应该安装文件、运行 tcpdump 和 monkey 命令,然后卸载包。

我正在遍历 apk 文件并使用此功能安装它们,效果很好。

def installApk(apk):
        os.system("sudo adb install " + apk)

但是当我尝试运行 tcpdump 函数时(它应该捕获 日期并将其保存到文件中)和猴子函数

def runTcpDump(apkPackage):
       os.popen("sudo -i xterm -e tcpdump src 10.0.2.7 -vvv > /home/seed/Documents/Programs "  + apkPackage  + ".pcap")

def runMonkey(apkPackage):
       os.popen("sudo -i xterm -e adb shell monkey -p " + apkPackage + " -vvv 1000")

我得到这些错误:
sh: 1: cannot create/home/seed/Documents/Programs: 是一个目录 #(我相信是 runTcpDump 函数的结果)

sh: 2: .pcap: not found #(由 runTcpDump 函数产生)

sh: 2: -vvv: not found #(由 runMonkey 函数产生)

最佳答案

就像@Jobin 建议的那样,您需要删除“/home/seed/Documents/Programs”末尾的空格,因为这会导致如下结果:

sudo -i xterm -e tcpdump src 10.0.2.7 -vvv > /home/seed/Documents/Programs apkPackage.pcap

这显然是不对的。您可能需要在“Programs”之后使用“/”而不是空格。

至于 os.popen("sudo -i xterm -e adb shell monkey -p "+ apkPackage + "-vvv 1000") 部分,你需要查看什么值apkPackage 必须了解它提示冗长标志的原因。

关于python - 在 python 脚本中使用 bash 命令时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38017877/

相关文章:

python - PyMC2 和 PyMC3 给出不同的结果......?

python 3.x 安装后没有名为 sqlalchemy 的模块

linux - C 编程 Fork 示例

linux - Linux操作系统下主机资源MIB的实现

python - 使用 'paths'访问不同层次的嵌套字典

python Flask网站错误: the requested URL was not found on the server

python - sqlalchemy - AttributeError(key) 实际上在 columnCollection 中时缺少键

linux - 创建一个分离 screen ,向它发送命令

bash - grep 部分出现在一个文件中的行到另一个文件

Bash:在设备上写入然后从中读取