测试linux局域网下ping命令联通性小脚本
#!/bin/bash
for i in {1..254}
do
ping -W1 -c3 10.12.155.$i &>/dev/null
if [ $? -eq 0 ]
then
echo "10.12.155.${i}通过" >>/root/ping/1.txt
else
echo "10.12.155.${i}不通过" >>/root/ping/2.txt
fi
done
文中提到的命令详解
#!/bin/bash #这是脚本的开头,指定了使用bash作为解释器来执行该脚本
for i in #for循环 循环语句 i 变量取值 用于遍历一个可迭代对象
$ #$ 引用符 引用i变量的取值
&>/dev/null #&> 将标准输出和标准错误重定向到/dev/null,实现不显示运行过程。
[$? -eq 0] #-eq 是等于 条件判断,用于检查上一个命令的执行结果是否为0。如果上一个命令执行成功(返回值为0),则条件成立,执行紧跟其后的代码块;否则条件不成立,跳过该代码块。
if[] ;then ;else ;fi #if[] 判断条件;then 如果符合条件则执行then后面的代码块 否则就执行else后面的代码块 用fi做结束因为不写fi他就会一直执行语句同一行排列需要;号隔开,不同行则不需要。[]内写参数前后需要留空格不然会报错
do done #在 Shell 脚本中,do done 用于标记一个循环的开始和结束。当执行到 do 时,会进入循环体,执行其中的代码;当执行到 done 时,会退出循环体,继续执行后面的代码。
文章上的脚本直接复制,到本地创建两个接收文件,使用的时候用sh 加你保存的文件名.sh 即可跑起来!