我正在编写一个循环来检查是否已建立连接。
我正在做
ping -c 1 8.8.8.8
while [ $? -ne 0 ] do
sleep 0.5
ping -c 1 8.8.8.8
done
现在我不确定这是如何工作的,如果 ping 请求在发出时被阻止(iptables 或其他),命令和脚本将无限期挂起。我想要的是 1 秒后停止等待回复并发送新请求。直到我以超过 1 秒的速度得到答复之前,$?
等于 0 并且它会中断循环。
答案1
while ! (ping -c 1 -W 1 8.8.8.8 > /dev/null); do
sleep 1
done
echo "< 1 sec reply received...exiting"