大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
LINUX Shell脚本编程实例详解(一)上
ping命令测试网段内主机的2例详解
使用linux已经有10来年了但是一直止于各种服务器的搭建和环境的调优,能力不能得到提升,今天突然下定决心学习Shell脚本编程,因此以网上广为流传的《Shell脚本100例》为基础学习、实验和笔记。
废话不说上栗子。
使用vim shell100-scanip-1.sh命令创建脚本文件
#!/bin/bash
for i in {1..254}
do
ping -c2 -i0.3 -W1 192.168.18.$i &>/dev/null
if [ $? -eq 0 ];then
echo "192.168.18.$i is up"
else
echo "192.168.18.$i is down"
fi
done
解释:
第一句 #!/bin/bash
在shell脚本的开头往往有一句话来定义使用哪种sh解释器来解释脚本。
目前研发送测的shell脚本中主要有以下两种方式:
(1) #!/bin/sh
(2) #!/bin/bash
止于使用sh还是bash来解释的区别后边抽时间专门写一篇文章,这里不在详述
第二句 for i in {1..254}
do
……
done
是循环结构,for循环类似程序中的for循环,i为循环变量,循环变量值在in{}里依次循环,循环体从do开始,done结束。
第三句ping -c2 -i0.3 -W1 192.168.18.$i &>/dev/null
ping命令参数
-c2:设置完成要求回应的次数;这里设置为2是考虑网络路由的问题导致第一次ping不能返回而第二次ping可以返回的情况(具体原因请自行阅读网络原理)
-i0.3:指定收发信息的间隔时间(秒计),这里的时间是综合考虑ping命令返回超时的时间和每次ping的时间,原则应为:返回超时<i参数<ping命令发送间隔。
-W1:即超时时间(毫秒计),这里表示超时时间为1毫秒,也就是说一毫秒后ping命令结束。
&>/dev/null :表示将标准输出stdout和标准错误输出stderr重定向到null的设备中,也就是说不打印到屏幕上了,而且也不保存文件(放到名叫null的设备中——无底洞永远消失)。
第四句判断语句
if [ $? -eq 0 ];then
……
else
……
fi
if判断语句 [ ]中为判断表达式,$?表示最后运行是否成功,成功为0 不成功为1
第五句、第六句
echo “192.168.18.$i is up”、echo “192.168.18.$i is down”表示回显到屏幕上$i表示当前i变量的值
栗子1解释完毕,待续
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/186424.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...