码迷,mamicode.com
首页 > 其他好文 > 详细

46.输入网卡显示ipaddr,输入ip显示网卡脚本

时间:2020-12-07 12:10:20      阅读:4      评论:0      收藏:0      [点我收藏+]

标签:信息   echo   sea   tca   net   输出   ipaddr   bash   pad   

思路:先将网卡和对应IP地址写入到文本,再根据输入的参数进行case判断 #!/bin/bash eths=/tmp/eths.txt #定义网卡文本路径 eth_if=/tmp/eth_if.txt#定义网卡和对应IP地址的文本路径 useage() { echo "please input: $0 -i network card or -I ip address." }#定义使用函数 wrong_netcard() { if ! awk -F ‘:‘ ‘{print $1}‘ $eth_if|grep -qw "^$1$";then #第一个$1为awk参数,第二个$1为外部传参参数$2赋值,"^ $"以参数开头结束 echo "please input right network information: `awk -F ‘:‘ ‘{print $1}‘ $eth_if|xargs`" #|xargs网卡信息不换行输出 exit#退出脚本 fi }#定义错误网卡函数 wrong_ip() { if ! awk -F ‘:‘ ‘{print $2}‘ $eth_if|grep -qw "^$1$";then echo -e "please input correct ip address: \n`awk -F ‘:‘ ‘{print $2}‘ $eth_if|grep -v ‘^$‘`" #echo -e "\n"换行,grep -v ‘^$‘将空行过滤 exit#退出脚本 fi }#定义错误ip地址函数 ip addr |awk -F ‘: ‘ ‘$1 ~ "^[0-9]" {print $2}‘ > $eths for i in `cat $eths` do ip_1=`ip addr |grep -A2 ": $i:"| grep -w inet|awk ‘{print $2}‘|cut -d ‘/‘ -f1` echo "$i:$ip_1" >> $eth_if done #将系统网卡对应信息写入到$eth_if文本 [ -f $eths ] && rm $eths #删除文本 if [ $# -ne 2 ];then #判断传递参数为2 useage exit#退出脚本 fi case $1 in -i) wrong_netcard $2 eth_ip=`grep -w $2 $eth_if |awk -F ‘:‘ ‘{print $2}‘` if [ -z $eth_ip ];then#判断网卡ip为空 echo "$2 ip address is none!" else echo "$2 ip address is $eth_ip" fi ;; -I) wrong_ip $2 ip_eth=`grep -w $2 $eth_if |awk -F ‘:‘ ‘{print $1}‘` echo "$2 network card information is $ip_eth" ;; *) useage ;; esac [ -f $eth_if ] && rm $eth_if#删除文本 使用网卡:sh getinterface.sh -i br0 输出信息:br0 ip address is 192.168.32.139 使用IP:sh getinterface.sh -I 127.0.0.1 输出信息:127.0.0.1 network card information is lo

46.输入网卡显示ipaddr,输入ip显示网卡脚本

标签:信息   echo   sea   tca   net   输出   ipaddr   bash   pad   

原文地址:https://blog.51cto.com/11594671/2558138

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!