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 НЕ инкапсулировано в двойные кавычки?

Любая помощь будет в значительной степени получена.

0 ответов

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