Answers:
结合问题和chepner的答案,这对我有用:
until $(curl --output /dev/null --silent --head --fail http://myhost:myport); do
printf '.'
sleep 5
done
$( )
代替。
--head
?
--head
不会改变任何东西,但是如果您想对响应内容(例如status.html)执行一些逻辑,则可以更改。
--head
总是返回405
。必须将其删除以使其正常工作
我想限制最大尝试次数。根据托马斯接受的答案,我做到了:
attempt_counter=0
max_attempts=5
until $(curl --output /dev/null --silent --head --fail http://myhost:myport); do
if [ ${attempt_counter} -eq ${max_attempts} ];then
echo "Max attempts reached"
exit 1
fi
printf '.'
attempt_counter=$(($attempt_counter+1))
sleep 5
done
--max-time 5
如果由于某些原因请求链接超时
httping对此很好。简单,干净,安静。
while ! httping -qc1 http://myhost:myport ; do sleep 1 ; done
虽然/直到等是个人偏好。
for i in
seq 60; do httping -qc1 http://myhost:myport && echo && break sleep 5 echo -n ${i}.. done
反引号的使用` `
已过时。使用$( )
来代替:
until $(curl --output /dev/null --silent --head --fail http://myhost:myport); do
printf '.'
sleep 5
done