2016-04-24 77 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')