我正在尝试找到一个活动的网卡,一个活动的网卡就是命令将为我返回的网络。
在我的命令中:
# cat /sys/class/net/eth0/operstate
我返回的值为UP
在另一个命令中,我输入:
# cat /sys/class/net/eth1/operstate
我得到一个DOWN值 总的来说,我有4个eth。我基本上必须使用命令来确定UP或DOWN
/sys/class/net/eth[0|1|2|3]/operstate = up | down
我希望能够编写一个程序,我将能够返回UP [0 | 1 | 2 | 3]值。
到目前为止,这就是我所拥有的:
mylist= [0,1,2,3]
for x in mylist:
with open('/sys/class/net/'x'/operstate') as f:
mac_eth0= f.read().rstrip()
if mac_eth0 == "up"
print "it is %s" %(mac_eth0)
当我运行此代码时,它告诉我有一个错误:
File "tes.py", line 5
with open('/sys/class/net/'x'/operstate') as f:
^
Syntax Error: invalid syntax
我只是不确定如何在for循环中添加哪个eth号。也许有更好的方法来解决这个问题。
提前感谢您的帮助
答案 0 :(得分:0)
x是包含值的变量:1或2或3或4。 您将x视为字符串的代码段。 此外,代码段尝试将单引号括在生成错误的单引号内。
修改如下,它应该有效。
此外,上述代码中存在语法错误 - 在' if'之后错过了冒号。子句。
mylist= [0,1,2,3]
for x in mylist:
with open('/sys/class/net/{}/operstate'.format(x)) as f:
mac_eth0= f.read().rstrip()
if mac_eth0 == "up":
print "it is %s" %(mac_eth0)