UNIX - До тех пор, пока условие цикла не ожидает целое число из строки?
Итак, у меня есть некоторый код, который должен проверить, завершена ли последовательность предварительной проверки, прежде чем я начну исправлять сервер. Я делаю это с помощью цикла до, и в качестве условия у меня установлен флаг true. Когда флаг установлен в значение false, это означает, что предварительные проверки выполнены, и теперь я могу выйти из цикла до.
Проблема в том, что я застреваю в бесконечном цикле и получаю сообщение об ошибке: [: true: ожидается целочисленное выражение
Я постоянно вызываю URL, чтобы провести свои проверки, и он возвращает файл, который я сохраняю. Пример извлечения из этого файла:
inProgress":true,"status":"IN_PROGRESS","preCheckMessages":[],"precheckResultItems":[]}
Часть, которую я должен извлечь из этого, является значением из поля inProgress (которое может быть 'true' или 'false'). Затем я использую это значение для сравнения с моим флагом. Поэтому я извлекаю значение из поля inProgress.
Часть кода, вызывающая у меня проблему, выглядит следующим образом:
inProgress="true"
until [ "$inProgress" -eq "false" ]
do
long_URL_goes_here > jobIdCheck.txt
inProgress=$(grep -o 'inProgress.*$' jobIdCheck.txt)
word="inProgress\":"
tempVar=${inProgress##${word}}
inProgress=${tempVar%%,*}
echo inProgress value = ${inProgress}
done
echo "Pre-checks complete. Ready to apply patch"
Здесь я попал в бесконечный цикл с сообщением об ошибке, в котором говорится: [: true: ожидается целочисленное выражение. (Я никогда не вижу сообщение "Предварительная проверка завершена")
Но я не понимаю, почему ожидалось целое число? Наверняка сравнения строк должно хватить?
Важен ли тот факт, что значение true в поле inProgress НЕ инкапсулировано в двойные кавычки?
Любая помощь будет в значительной степени получена.