我正在使用Raspbian并尝试使用带有 popen 功能的python运行一个非常简单的cmd。 我是 linux 和 python
的新手from subprocess import Popen, PIPE
po = Popen(['airmon-ng', 'start wlan0 10'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
proc = Popen(args, stdout=PIPE, stderr=PIPE)
out, err = proc.communicate()
out
返回
'\n\nusage: airmon-ng <start|stop|check> <interface> [channel or frequency]\n\n'
当仅运行 airmon-ng 而没有参数时,可以在popen函数之外创建返回的错误消息,这让我相信 popen 不会转发 args 正确。
答案 0 :(得分:4)
您需要正确分离comamnd行参数; start
,wlan0
,10
应该是分开的命令行参数:
proc = Popen(['airmon-ng', 'start', 'wlan0', '10'],
stdin=PIPE, stdout=PIPE, stderr=PIPE)
out, err = proc.communicate()
print(out)
问题的方式就像在shell中调用命令一样:
airmon-ng 'start wlan0 10'
不同于:
airmon-ng start wlan0 10