1.写一个脚本getinterface.sh,脚本可以接受参数(i,I,a),完成以下任务:
(1)使用以下形式:getinterface.sh [-i interface|-I IP|-a]
(2)当用户使用-i选项时,显示其指定网卡的IP地址;
(3)当用户使用-I选项时,显示其后面的IP地址所属的网络接口;
(4)当用户单独使用-a选项时,显示所有的网络接口及其IP地址(lo除外);
执行情况如下
[root@LFG1000105234 ~]# ./getinterface.sh -a
OK
eth0:189.101.0.5 eth1:192.168.1.4 eth2:189.101.7.5 eth3:189.101.8.254 eth4:192.168.0.62 eth5:189.100.1.254 eth6:189.100.2.254
[root@LFG1000105234 ~]# ./getinterface.sh -i eth2
OK
189.101.7.5
[root@LFG1000105234 ~]# ./getinterface.sh -a
OK
eth0:189.101.0.5 eth1:192.168.1.4 eth2:189.101.7.5 eth3:189.101.8.254 eth4:192.168.0.62 eth5:189.100.1.254 eth6:189.100.2.254
[root@LFG1000105234 ~]# ./getinterface.sh -tt
ff
getinterface.sh [-i interface | -I IP | -a]
[root@LFG1000105234 ~]# ./getinterface.sh -I 189
OK
eth0 eth2 eth3 eth5 eth6
(1)使用以下形式:getinterface.sh [-i interface|-I IP|-a]
(2)当用户使用-i选项时,显示其指定网卡的IP地址;
(3)当用户使用-I选项时,显示其后面的IP地址所属的网络接口;
(4)当用户单独使用-a选项时,显示所有的网络接口及其IP地址(lo除外);
#! /bin/bash
function Print_Help()
{
echo "getinterface.sh [-i interface | -I IP | -a]"
}
function Para_Check()
{
local paranum=$1
if ([ $paranum = '-a' ] || [ $paranum = '-i' ] || [ $paranum = '-I' ]);then
echo "OK"
else
echo "ff"
Print_Help
exit
fi
}
function List_Nic()
{
echo `ifconfig -a | grep -v "127" | grep -B 1 "inet " | awk '/eth/{print $1;next} /inet/{print $2}' | sed '{N;s/\n//g}'`
}
function Get_IP()
{
if [ $1 == "-i" ];then
echo `ifconfig $2 | grep "inet " | awk '{print $2}'`
elif [ $1 == "-I" ];then
echo `ifconfig -a | grep -B 1 $2 | grep "eth" | awk -F ":" '{print $1}'`
else
echo "end"
Print_Help
fi
}
function main()
{
Para_Check $@
Para=$@
if [ $# -eq 1 ];then
List_Nic
elif [ $# -eq 2 ];then
Get_IP $Para
else
Print_Help
fi
}
main $@
执行情况如下
[root@LFG1000105234 ~]# ./getinterface.sh -a
OK
eth0:189.101.0.5 eth1:192.168.1.4 eth2:189.101.7.5 eth3:189.101.8.254 eth4:192.168.0.62 eth5:189.100.1.254 eth6:189.100.2.254
[root@LFG1000105234 ~]# ./getinterface.sh -i eth2
OK
189.101.7.5
[root@LFG1000105234 ~]# ./getinterface.sh -a
OK
eth0:189.101.0.5 eth1:192.168.1.4 eth2:189.101.7.5 eth3:189.101.8.254 eth4:192.168.0.62 eth5:189.100.1.254 eth6:189.100.2.254
[root@LFG1000105234 ~]# ./getinterface.sh -tt
ff
getinterface.sh [-i interface | -I IP | -a]
[root@LFG1000105234 ~]# ./getinterface.sh -I 189
OK
eth0 eth2 eth3 eth5 eth6