我正在尝试将 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/