shell脚本中执怎么让每个ping延迟2秒中断然后自动执行下一个ping呢

来源:2-7 对于shell编程中,使用单引号和双引号时趟过的一些坑有哪些

JosiahC

2022-06-06

要ping很多机器,测试网络情况
想让它自动跑起来
但是脚本中直接每行写ping,它不会自动中断继续下一个ping
怎么让每个ping延迟2秒中断然后自动执行下一个ping呢

写回答

1回答

酷田

2022-06-06

ping不加任何参数时不会自动结束,如果要在脚本中使用,用于探测主机是否可以正常联通,需要加参数-w

-w 参数代表超时的时间,例如-w 3代表无论能否ping通,3秒后都自动结束改指令。

//img.mukewang.com/szimg/629d93db09c1dfd011700470.jpg

完整的探测主机是否联通的脚本可以这样写:

#!/bin/bash

#


HOST="10.99.0.101 10.99.0.223  1.1.1.1"


for h in $HOST;do


ping  -w 3 $h &> /dev/null

if [ $? -eq 0 ];then

echo "Ping HOST $h is OK...."

else

echo "Ping HOST $h is Failed..."

fi

done


执行后效果如下:

//img.mukewang.com/szimg/629d943f09236f8806140114.jpg

2
2
JosiahC
老师 但是脚本里的这个$?这个命令也没执行呀,直接就能if判断? 不得先执行一下$?,再判断
2022-06-06
共2条回复

掌握Shell脚本编程 360架构师带你进阶Linux高手

30%知识讲解+70%实例操作 掌握Shell脚本编程能力

1638 学习 · 297 问题

查看课程