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

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

Для целей тестирования я просто хочу отобразить диалог, когда URL-адрес содержит строку «RUNNING». В конце концов, это будет мой триггер для запуска клиента, который требует, чтобы сервер был готов.

Чтобы увидеть, что происходит, я добавил дополнительные диалоги, отображающие значение проверки $.

Вот что я до сих пор:

#!/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.

Любые идеи?

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

2 ответа

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

#!/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
ответ дан 18 July 2018 в 10:14

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

#!/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
ответ дан 24 July 2018 в 19:31

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

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