Я был рядом с этой работой, но я, может казаться, не заставляю сценарий заканчиваться однажды успешный. Это просто повторяется.
Для тестирования я просто надеюсь отображать диалоговое окно, когда 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. верный
После этого это просто повторяет ВЫПОЛНЕНИЕ/! И верный. Пока цикл не видит истинное.
Какие-либо идеи?
Я фигурировал, так как я видел, что переменная не читалась вне цикла, я должен был заново продумать его. Вся цель цикла, конечно, состояла в том, чтобы продолжать пробовать, пока сервер не возрос. Таким образом, я упростил все это и просто вышел на последнем шаге, если верный.
#!/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