我有一个while循环,它试图为一个术语卷曲一个网络链接。我需要在其中添加一个“或”,这样我就可以计算一段时间,这样如果页面永远不会出现,它就不会不要无限期地拖延脚本。这是我所拥有的,这是行不通的。
count=0
while [ $count -lt 5 -o `curl -silent -m 2 10.10.10.10:7001 | grep myterm | wc -l` -lt 1 ]; do
echo "Waiting for it to start"
count=$(($count + 1))
sleep 5
done
echo "started"
我知道我的 curl 工作并在页面打开时返回 1,并且计数部分工作正常,如果它循环 5 次,它会结束 while 循环并说开始(不是我离开它的方式,只是一个例子)。然而第一次运行时,它应该看到我的 curl = 1,不小于 1,然后结束 while 循环。我做错了什么??
编辑:解释我为什么这样做,所以有人可以解释为什么这是不好的做法/该怎么做。
我正在启动一个 jboss 服务。此服务可能需要 3 到 6 分钟才能启动。所以我需要做两件事。检查状态页面是否出现(判断它何时成功启动的最佳方式),如果出现超过 8 分钟,则停止检查,以便它可以继续下一个服务。想法?