Bash сравнивает строки, не работающие внутри цикла while - PullRequest
0 голосов
/ 16 мая 2019

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

db_instances_status="creating" 
db_instances_status=$(makes api request to get value)

COUNTER=0
while [ $COUNTER -lt 1 ]; do
  db_instances_status=$(makes api request to get value)

  echo "$db_instances_status" # echos available

  if [ "available" = "$db_instances_status" ]; then
     # code never makes it here
     dosomething()
     break;
  fi
  sleep 30
done

Я следовал примерам из этого Как сравнивать строки в Bash

и здесь https://tecadmin.net/tutorial/bash/examples/check-if-two-strings-are-equal/

1 Ответ

1 голос
/ 16 мая 2019

Вы либо не получаете оператор if, либо переменная не содержит того, что, как вы думаете, она делает.

Этот фрагмент поможет отладить оба ...

while [ $COUNTER -lt 1 ]; do
  echo "[DEBUG] getting status"
  db_instances_status=$(makes api request to get value)
  echo "[DEBUG] X${db_instances_status}X"
  echo "$db_instances_status" # echos available

  if [ "available" = "$db_instances_status" ]; then
...