我是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“...”部分。我不知道该怎么做。 如果有人能指导我朝着正确的方向前进,我真的很感激。
答案 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秒)。