如何用shell脚本获取所有网卡名称和IP地址

1.为了成对统计电脑的网卡和IP,本人实现的一种方法:

#!/bin/bash
#先过滤网卡名称,存到数组a中
a=(`ifconfig | grep ^[a-z] | awk -F: '{print $1}'`)
#在拿到IP地址,存到数组b中
b=(`ifconfig | grep 'inet' | sed 's/^.*inet //g' | sed 's/ *netmask.*$//g'`)

for ((i=0;i<6;i++))
  do
    echo ${a[$i]} ${b[$i]}
  done

2.通过数组长度组合内容(升级版)

#!/bin/bash
#先过滤网卡名称,存到数组a中
a=(`ifconfig | grep ^[a-z] | awk -F: '{print $1}'`)
#在拿到IP地址,存到数组b中
b=(`ifconfig | grep 'inet' | sed 's/^.*inet //g' | sed 's/ *netmask.*$//g'`)
for ((i=0;i<${#a[@]};i++))
  do
    echo ${a[$i]} ${b[$i]} 
  done

利用@或*,可以将数组扩展成列表,然后使用#来获取数组元素的个数,格式如下:
${#array_name[@]}
${#array_name[*]}

是不是有其它更好的方式,欢迎贴到评论区!

你可能感兴趣的:(运维技术,linux,centos,服务器,运维)