专栏首页阿dai_linuxshell脚本-shell的getops 原

shell脚本-shell的getops 原

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

  • 使用一下形式:getinterface.sh [-i interface | -I ip]
  • 当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项时,显示其指定ip所属的网卡。 例: sh getinterface.sh -i eth0 sh getinterface.sh -I 192.168.0.1
  • 当用户使用除[-i | -I]选项时,显示[-i interface | -I ip]此信息。
  • 当用户指定信息不符合时,显示错误。(比如指定的eth0没有,而是eth1时)
#!/bin/bash
##Find ip or interface
##Written by Adai 2017-09-06
read -p "Input 'i' to interface;'I' to ip: " c
if [[ $c == i ]]
then
    read -p "Please input your interface name: " n
    ip=`ifconfig | egrep -A1 "$n" |egrep -v "$n" |awk '{print $2}'`
    echo "ip is: $ip"
elif [[ $c == I ]]
then
    read -p "Please input your ip:" m
    ens=`ifconfig | egrep -B1 "$m" |egrep -v "$m"|awk -F ":" '{print $1}'`
    echo "interface is: $ens"
else
    echo "Unknown variate.Please check your option!"
fi

铭哥:

#!/bin/bash
ip add |awk -F ":" '$1 ~ /^[1-9]/ {print $2}'|sed 's/ //g' > /tmp/eths.txt
[ -f /tmp/eth_ip.log ] && rm -f /tmp/eth_ip.log
for eth in `cat /tmp/eths.txt`
do
    ip=`ip add |grep -A2 ": $eth" |grep inet |awk '{print $2}' |cut -d '/' -f 1`
    echo "$eth:$ip" >> /tmp/eth_ip.log
done

useage()
{
    echo "Please useage: $0 -i 网卡名字 or $0 -I ip地址"
}

wrong_eth()
{
    if ! grep -q "$1" /tmp/eth_ip.log
    then
        echo "请指定正确的网卡名字"
    exit
    fi
}

wrong_ip()
{
    if ! grep -qw "$1" /tmp/eth_ip.log
    then
        echo "请指定正确的ip地址"
    exit
    fi
}

if [ $# -ne 2 ]
then
    useage
    exit
fi

case $1 in
    -i)
    wrong_eth $2 
    grep $2 /tmp/eth_ip.log |awk -F ':' '{print $2}'
    ;;

    -I)
    wrong_ip $2
    grep $2 /tmp/eth_ip.log |awk -F ':' '{print $1}'
    ;;

    *)
    useage
    exit
esac

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • shell跳板机(较复杂) 转

    使用本菜单选项的方法:将上面jumpserver.sh脚本中“登录界面”下的参数换成下面的参数即可。

    阿dai学长
  • elasticsearch节点迁移 原

    待es恢复至green状态后需要配置logstash、kibana以及grafna(kibana和grafna之前都是从md6采集数据)。

    阿dai学长
  • 关于kafka监控工具

    较之传统的消息中间件(例如 ActiveMQ、RabbitMQ),Kafka 具有高吞吐量、内置分区、支持消息副本和高容错的特性,非常适合大规模消息处理应用程序...

    阿dai学长
  • SpringBoot自定义拦截器实现IP白名单功能

    上帝
  • 一个简单的ip黑名单实例

    Youngxj
  • SpringBoot自定义拦截器实现IP白名单功能

    上帝
  • python 扫描内网存活主机

    py3study
  • python脚本修改hosts文件

    记一次使用python脚本来修改hosts文件,由于公司服务器需要换ip地址,服务器里都是Linux系统,而hosts文件中有些解析的ip,手动一台一台的解析太...

    py3study
  • SpringBoot自定义拦截器实现IP白名单功能

    转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/8993331.html

    上帝
  • 部署在docker里的java程序获取真实的用户ip地址

    目前我们的服务都是全部docker化,网关zuul和各微服务都部署在docker里,构成了集群。

    天涯泪小武

扫码关注云+社区

领取腾讯云代金券