如何等到 Web 服务器准备就绪后再启动脚本

如何等到 Web 服务器准备就绪后再启动脚本

我已经接近完成这项工作,但似乎无法让脚本在成功后结束。它只是重复。

为了测试目的,我只想在 URL 包含字符串“RUNNING”时显示一个对话框。最终,这将是我启动需要服务器准备就绪的客户端的触发器。

为了查看发生了什么,我添加了额外的对话框来显示 $check 的值。

以下是我目前所掌握的信息:

#!/bin/bash
check="false"
webserv="http://localhost:8088/main/system/gwinfo"
Keyword="RUNNING" # enter the keyword for test content
zenity --error --text=$check --title="Warning\!";

until [$check=="true"]
do

zenity --error --text=$check --title="Warning\!"; 

if curl -s "$webserv" | grep "$Keyword";
then
    # if the keyword is in the conent
    zenity --error --text="RUNNING\!" --title="Warning\!"; 
    check="true";

fi
done

执行时我看到的是以下对话框:1. false 2. false 3. RUNNING/! 4. true

此后,它只是重复 RUNNING/! & true。until 循环未看到 true。

有任何想法吗?

答案1

我认为既然我可以看到变量没有在循环外被读取,我就需要重新考虑一下。循环的整个目的当然是不断尝试直到服务器启动。所以我简化了整个过程,并在最后一步中退出(如果为真)。

#!/bin/bash
check="false"
webserv="http://localhost:8088/main/system/gwinfo"
Keyword="RUNNING" # enter the keyword for test content

until [$check=="true"]
do



if curl -s "$webserv" | grep "$Keyword";
then
    # if the keyword is in the conent
    ./clientlauncher.sh scope=C project=Edge windowmode=fullscreen  
    exit

fi
done

相关内容