2013-12-17 2 views
0

Я пишу сценарий для отображения всех ips сетевого адаптера сервера, но у меня есть вопрос.Использовать переменные в модуле sh

Как правильно использовать переменные с модулем sh в Python?

Пример из моего кода:

allinterfaces = os.popen('/sbin/ifconfig -s |awk {\'print $1\'} |grep -v Iface')#.read().strip() 

for interface in allinterfaces: 
    print interface 
    print sh.grep(sh.ifconfig('eth0'), "-oP", "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}") 

Мой вопрос: как я могу изменить «eth0» для переменной?

+0

Чтобы заменить переменную 'interface', вы просто вызываете' sh.ifconfig (interface) 'вместо' sh.ifconfig ('eth0') '. Это ты имел в виду? –

+0

Я сделал это: 'print sh.grep (sh.ifconfig (interface)' выход части: RAN: '/ sbin/ifconfig eth0 \ n' –

ответ

1
import socket 
print([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] if not ip.startswith("127.")][:1])
Смежные вопросы