проверка нескольких выражений внутри цикла до в скрипте bash - PullRequest
0 голосов
/ 15 января 2019

Я получаю сообщение об ошибке при попытке оценить несколько выражений в цикле до

Я пробовал несколько комбинаций, как показано в разделе кода, но ни одна из них не работает.

Попытка 1:

until [ [ $http_response_code=$(curl --write-out "%{http_code}" --silent --output /dev/null "$http_url") ] = $http_success_code ]
do
     <something>
done

Попытка 2:

until [ $http_response_code=$(curl --write-out "%{http_code}" --silent --output /dev/null "$http_url") ] = [ $http_success_code ]
do
     <something>
done

Попытка 3:

until [ ($http_response_code=$(curl --write-out "%{http_code}" --silent --output /dev/null "$http_url")) = $http_success_code ]
do
     <something>
done

Ожидается - Нет синтаксической ошибки
Фактически - синтаксическая ошибка

1 Ответ

0 голосов
/ 15 января 2019

Вы не можете назначать переменные в тестовом выражении. Вы должны иметь задание отдельно от теста. Примерно так может работать:

until {
        http_response_code=$(curl --write-out "%{http_code}" --silent --output /dev/null "$http_url")
        [[ "$http_response_code" = "$http_success_code" ]]
      }; do
  <something>
done
...