Python抑制shell输出

5
我的Python脚本通过os.system调用shell命令,如下所示:
os.system('sudo ifdown wlan0 &> /dev/null')

如果我在没有Python的情况下运行此命令,则输出将被抑制,但是在Python中,它仍会打印输出。我做错了什么?

1
你可以试试按照这里所描述的使用 subprocess 吗?https://dev59.com/iWgu5IYBdhLWcg3wgnVh - John Zwinck
1个回答

8
当您使用os.system时,使用的shell是/bin/sh。在许多操作系统中,/bin/sh不是bash。您正在使用的重定向&>未被POSIX定义,不能在某些shell上工作,例如dash,它是Debian及其许多衍生产品上的/bin/sh。以下内容应正确抑制输出:
os.system('sudo ifdown wlan0 > /dev/null 2>&1')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接