【发布时间】:2015-07-07 10:53:09
【问题描述】:
以下 Perl 示例是长 Perl 脚本的一部分。
此脚本从ifconfig -a 获取结果并打印 IP 地址。
有人可以解释$1 是如何获得IP 地址的吗?
还有什么正则表达式
$RESULTS =~ /addr:(\S+)\s+/
是什么意思?
my $COMMAND = "ifconfig -a | grep inet | grep -v 127.0.0.1 | head -1";
my $RESULTS = `$COMMAND`;
chomp $RESULTS;
# inet addr:106.13.4.9 Bcast:106.13.4.255 Mask:255.255.255.0
# inet 106.13.4.9 netmask ffffff80 broadcast 106.13.4.127
if ( $RESULTS =~ /addr:(\S+)\s+/ ) {
$IpAddress = $1;
}
elsif ( $RESULTS =~ /inet\s+(\S+)\s+/ ) {
$IpAddress = $1;
}
print "IpAddress = $IpAddress\n";
【问题讨论】: