网卡和IP

例46

写一个getinterface.sh 脚本可以接受选项[i,I],完成下面任务:

1)使用格式:getinterface.sh [-i interface | -I ip]

2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项时,显示其指定ip所属的网卡。

例:
sh getinterface.sh -i eth0 或者

sh getinterface.sh -I 192.168.0.1

3)当用户使用除[-i | -I]选项时,显示[-i interface | -I ip]此信息。

4)当用户指定信息不符合时,显示错误。(比如指定的eth0没有,而是eth1时)
#!/bin/bash
ip add |awk -F ': ’ ‘$1 ~ “1” {print $2}’ > /tmp/ifs.txt
get_ip()
{
ip add show dev $1 |grep inet |awk ‘{print $2}’ |awk -F ‘/’ ‘{print $1}’
}
for eth in cat /tmp/ifs.txt
do
myip=get_ip $eth
if [ -z “$myip” ]
then
echo $eth
else
echo $eth $myip
fi
done > /tmp/if_ip.txt
if [ $# -ne 2 ]
then
echo “请输入正确的格式: bash $0 -i 网卡 或者 bash $0 -I ip”
exit
fi
if [ $1 == “-i” ]
then
if awk ‘{print $1}’ /tmp/if_ip.txt |grep -qw $2
then
eth= 2 i p 1 = ‘ a w k − v a e t h = 2 ip1=`awk -v aeth= 2ip1=awkvaeth=eth ' 1 = = a e t h ′ / t m p / i f i p . t x t ∣ s e d " s / 1==aeth' /tmp/if_ip.txt|sed "s/ 1==aeth/tmp/ifip.txtsed"s/eth //“echo "网卡$2的ip是 $ip1" else echo "你指定的网卡不对,系统中的网卡有:cat /tmp/ifs.txt|xargs" exit fi elif [ $1 == "-I" ] then if grep -qw " $2 " /tmp/if_ip.txt then eth=grep -w " $2 " /tmp/if_ip.txt|awk '{print $1}'echo "IP $2对应的网卡是$eth" else echo "你指定的ip不对,系统中的IP有:ip add |grep inet |awk ‘{print $2}’|awk -F ‘/’ ‘{print $1}’|xargs`”
exit
fi
else
echo “请输入正确的格式: bash $0 -i 网卡 或者 bash $0 -I ip”
fi


  1. 1-9 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值