有人知道这个Python脚本吗?它做了什么?
interface = popen('ifconfig | awk \'/eth0/ {print $1}\'').read()
答案 0 :(得分:1)
$ ifconfig
会打印出类似的内容:
eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
UP BROADCAST MULTICAST MTU:1500 Metric:1
...
将使用模式awk
将其传送到eth0
,与/eth0/
的行匹配,并打印第一个字段,在这种情况下为eth0
。
popen
将此shell脚本的输出读入Python。
因此,如果您有一个eth0
界面interface
,则eth0
将是eth0
,如果您没有interface
界面eth0
将是Python中的空字符串。
所以我的猜测是它会查看系统中是否存在DIV #s4-topheader2 {
BORDER-TOP: 0px;
BACKGROUND-IMAGE: none;
BORDER-BOTTOM: #222 7px solid
}
.s4-toplinks {
FONT-SIZE: 14px;
FONT-FAMILY: "Helvetica Neue", Arial, Helvetica, sans-serif;
BACKGROUND: #333
}
.s4-tn .menu LI A.static {
BORDER-TOP: medium none;
FONT-FAMILY: "Helvetica Neue", Arial, Helvetica, sans-serif;
BORDER-RIGHT: medium none;
BORDER-BOTTOM: medium none;
COLOR: #ccc;
PADDING-BOTTOM: 20px;
PADDING-TOP: 20px;
PADDING-LEFT: 20px;
BORDER-LEFT: medium none;
PADDING-RIGHT: 20px
}
.s4-tn .menu LI A.selected {
BORDER-TOP: medium none;
BORDER-RIGHT: medium none;
BACKGROUND-IMAGE: none;
BORDER-BOTTOM: medium none;
MARGIN: 0px;
BORDER-LEFT: medium none;
BACKGROUND-COLOR: #222
}
.s4-tn .menu LI A.static:hover {
TEXT-DECORATION: none;
BACKGROUND: #444;
COLOR: white
}
DIV #s4-searcharea {
POSITION: relative;
TOP: 17px
}
,如果可用,它将作为默认值使用。
答案 1 :(得分:0)
ifconfig
和awk
都是标准的Unix / Linux命令。 (ifconfig
已经有替换,但仍然经常使用)。
在shell命令ifconfig | awk '/eth0/ {print $1}'
中,前一个命令打印有关系统网络接口的信息,后者是一个过滤器,它只打印每个记录的第一个字段(基本上是第一个字)(即文本行) )匹配eth0
文字字符串。 awk
是一个功能强大的文本处理工具。它的综合手册有一本小书的大小。
这个shell命令有一个Python包装器,它在一个单独的进程中运行它并读取结果输出。如果您想尝试,popen
必须从os
导入。
eth0
是第一个以太网接口的传统名称。结果可能是这个名字后跟冒号和换行符。还将包括eth0:0
等网络别名。它仅适用于使用eth0
的命名方案的系统。例如。 Linux过去曾使用过这样的接口名称,但现在标准的是不同的,更可预测的命名方案。
这就是它的全部功能。我不知道预期的用途,但我个人觉得这些代码不可靠且效率低下。