2016-04-24 79 views
3

我的Python脚本通过使用os.system调用一个shell命令:Python的抑制外壳输出

os.system('sudo ifdown wlan0 &> /dev/null') 

如果我没有运行的Python此命令,输出被抑制,在Python,但是,它仍然打印输出。

我在做什么错?

+1

你可以尝试使用'subprocess'这里描述? http://stackoverflow.com/questions/11269575/how-to-hide-output-of-subprocess-in-python-2-7 –

回答

8

当您使用os.system时,使用的外壳是/bin/sh。在许多操作系统上,/bin/sh不是bash。您正在使用的重定向&>未由POSIX定义,并且不适用于某些shell,如dash,这是Debian及其衍生产品上的/bin/sh。以下应该正确地抑制输出:

os.system('sudo ifdown wlan0 > /dev/null 2>&1')