Как я могу ожидать, пока веб-сервер не готов прежде, чем запустить сценарий

Я был рядом с этой работой, но я, может казаться, не заставляю сценарий заканчиваться однажды успешный. Это просто повторяется.

Для тестирования я просто надеюсь отображать диалоговое окно, когда URL содержит строку "ВЫПОЛНЕНИЕ". В конечном счете это будет моим триггером для запуска клиента, который требует, чтобы сервер был готов.

Для наблюдения то, что происходит, я добавил дополнительные диалоговые окна, отображающие значение $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. ложь 2. ложь 3. ВЫПОЛНЕНИЕ/! 4. верный

После этого это просто повторяет ВЫПОЛНЕНИЕ/! И верный. Пока цикл не видит истинное.

Какие-либо идеи?

2
задан 16 July 2017 в 19:39

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
0
ответ дан 2 December 2019 в 08:49

Другие вопросы по тегам:

Похожие вопросы: