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')