我的Python脚本通过os.system调用shell命令:
os.system('sudo ifdown wlan0 &> /dev/null')
如果我在没有Python的情况下运行此命令,则会在Python中禁止输出,但是仍会打印输出。
我做错了什么?
答案 0 :(得分:8)
使用os.system
时,使用的shell为/bin/sh
。在许多操作系统上,/bin/sh
不是bash
。您正在使用的重定向&>
不是由POSIX定义的,并且不适用于某些shell,例如dash
,它们是Debian上的/bin/sh
及其许多衍生产品。以下内容应正确抑制输出:
os.system('sudo ifdown wlan0 > /dev/null 2>&1')