黑马程序员技术交流社区

标题: 【上海校区】如何将Shell脚本应用到实际中之--检测未被使... [打印本页]

作者: 王大彤最美    时间: 2018-4-26 18:01
标题: 【上海校区】如何将Shell脚本应用到实际中之--检测未被使...
在实际工作中,经常会被IP冲突搞的心烦意乱,也会导致工作阻塞,今天我给大家提供一个办法.
(严禁抄袭哦,我会生气的)

首先穿插一下for循环和if语句的格式吧,以帮助大家理解。
For循环
for 条件语句
do
循环体
done
If判断语句分为两种
单判断语句
if 条件;then ;结果;fi(这里的;英文字符)
多判断语句
if 条件  
then
执行结果
elif 条件
then        
执行结果
else
执行结果
Fi

好了,现在开始说正题!!!
新建一个shell文件,编辑如下脚本。

第一行  #!/bin/bash 表示该脚本使用的是哪种shell,毕竟shell也有很多种。例如Bourne shell、Korn shell、Cshell等。
第二行 是一个for 循环,将i初始值设为1,小于等于254,每次循环加1。一般来说,不建议使用255,所以这里设为254。
第三行 for循环的do语句
第四行是 if 语句
ping -c 2 10.0.2.${i} >/dev/null
意思是与10.0.2网段的每一个${i}的值的地址ping,ping 2次。
>/dev/null 意思是重定向到一个空洞文件。就是相当于Windows上的回收站。当然也        可重定向到别的文件。怎么开心怎么来。
第五行是与if语句连用的then。
第六行是if后的结果,意思是如果ping通了就显示 ip 被使用。
如果第四行执行ping通了,那么就会显示ip被使用。
第七行是与if相反的意思。意思是ping不通过。
第八行的意思是如果ping不通,就显示ip 未被使用。
第九行是if语句的结束语句,代表if语句在一行这执行完毕。
第十行是do语句的结束语句。代表整个脚本执行到这结束。
那么我们就可以按照这个结果进行选择未被使用的ip,就能避免出现ip冲突的事了。
当然,我这边是让结果重定向到黑洞文件。结果只能当时看见,如果想长期保存,就重定向到一个你熟悉的文件里。以便以后查询。
下面开始说执行脚本的命令,注意咯!
第一种:在脚本所在目录下执行 source jcip.sh
执行结果:
第二种:先执行 su - chmod 777  jcip.sh
再在脚本所在目录下执行 ./jcip.sh


两种办法怎么选择根据自己心情来。还是那句话哦。自己开心就好。
follow your heart

      


作者: 吴琼老师    时间: 2018-7-5 17:50

作者: 不二晨    时间: 2018-7-17 14:05
棒棒哒
作者: wuqiong    时间: 2018-7-24 16:46

作者: 摩西摩西OvO    时间: 2018-7-26 10:32





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2