ping命令后1秒延迟

时间:2014-09-11 10:19:27

标签: linux bash shell

我是linux脚本的新手,如果这是一个微不足道的问题,请道歉。 我写了以下脚本。 该脚本基本上ping了192.168.11.0中的ip地址,并在响应成功与否时打印。

#!/bin/bash

NETWORK=192.168.11
IP_START=101
IP_END=148

IP_COUNTER=$IP_START

while [[ $IP_COUNTER -le $IP_END ]]
   do
       ip=$NETWORK.$IP_COUNTER
       ping -c1 $ip &>/dev/null && echo "$ip is UP" || echo "$ip is DOWN"
       IP_COUNTER=$(($IP_COUNTER +1))
   done

但是我希望在ping和“echo”之间有1秒的延迟。$ ip是UP“...”部分。我不知道该怎么做。 如果有人能指导我朝着正确的方向前进,我真的很感激。

1 个答案:

答案 0 :(得分:1)

使用睡眠。

if ping -c1 $ip &>/dev/null ; then sleep 1 echo $ip is up else sleep 1 echo $ip is down fi

当我查看您的代码时,可能会更好地匹配您的编码风格

ping -c1 $ip &>/dev/null && sleep 1 && echo "$ip is up" || sleep 1 && echo "$ip is down"

"真" posix sleep只接受积分值(sleep 1,sleep 2),但linux版本的sleep也可以处理非积分(睡眠时间为0.25,持续1/4秒)。