写进脚本之前,先执行:ifconfig | egrep '\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9])\>'
上面代码是筛选你全部ip的,如果有 输出内容,在开始写脚本。
===================================================================
因为 不同服务器可能 网段不同, 而且就算同一台服务器也可以有2个网段的ip,所以 使用固定脚本提取ip的话,很可能提取到的不是我们想要的,所以 变成接收用户参数的 提取,准确度更高,灵活性更广,我个人是这么觉得的!
#!/bin/bash
ip=ifconfig | egrep '\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9])\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9])\>'|grep $1 2> /dev/null |awk '{print $2}'
if [ $# -ne 1 ] ;then
echo “请在执行脚本后面输入一个ip网段参数,如:0.0”
exit
else
echo “你输入的网段为:”$1
echo “提取的ip为:”$ip
fi
其实 这代码还好,都是些很基础的内容,如果有哪里看不懂的去我博客shell分类 看看 shell脚本笔记。
特别需要说明的就是脚本开头变量中的 grep $1 2> /dev/null
这一句,原理性的我不说,2> 是错误输出到文件/dev/null(无底洞文件)中, 如果我不加这一句,运行脚本时候不加变量就会提示我(是提醒,不是报错),如图:
[root@control ~]$ifconfig | egrep ‘<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9]).([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9]).([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9]).([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-9][0-9])>’
inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
inet 10.233.3.225 netmask 255.255.255.128 broadcast 10.233.3.255
inet 127.0.0.1 netmask 255.0.0.0
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
[root@control ~]$sh ip.sh
请在执行脚本后面输入一个ip网段参数,如:0.0
[root@control ~]$sh ip.sh 1 3
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0
习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0