Python подавить вывод оболочки

Мой скрипт Python вызывает команду оболочки через os.system как:

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

Если я запускаю эту команду без Python, вывод подавляется, однако в Python он все равно печатает вывод.

Что я делаю неправильно?

1 ответ

Когда вы используете os.systemиспользуемая оболочка /bin/sh, На многих операционных системах, /bin/sh не является bash, Перенаправление, которое вы используете, &>, не определяется POSIX и не будет работать на некоторых оболочках, таких как dash, который /bin/sh на Debian и многих его производных. Следующее должно правильно подавить вывод:

os.system('sudo ifdown wlan0 > /dev/null 2>&1')
Другие вопросы по тегам