Условное нечетное поведение Bash - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь оценить это условие, которое, как я знаю, верно.Я даже могу повторить выражение и получить True.

Я пробовал много разных вариантов скобок, назначая команду для переменной и другие вещи.

    if $(az group exists --name $RESOURCE_GROUP_NAME)
    then
        exit 1
    else

        az group create --location $LOCATION --name $RESOURCE_GROUP_NAME
    fi

, даже если эта командаЗначение true в командной строке не соответствует условию в сценарии.

az group exists --name $RESOURCE_GROUP_NAME

Всегда создает группу

1 Ответ

2 голосов
/ 16 мая 2019

Понятия не имею, что делает az, но я подозреваю, что вы хотели написать

if az group exists --name $RESOURCE_GROUP_NAME

для проверки состояния выхода az вместо

if $(az group exists --name $RESOURCE_GROUP_NAME)

, который проверяет состояние завершения выполнения текста, напечатанного на стандартный вывод, с помощью az. Посмотрите:

$ if echo 1; then echo "success"; else echo "failure"; fi
1
success

$ if $(echo 1); then echo "success"; else echo "failure"; fi
-bash: 1: command not found
failure

$ if echo date; then echo "success"; else echo "failure"; fi
date
success

$ if $(echo date); then echo "success"; else echo "failure"; fi
Wed, May 15, 2019 10:25:26 PM
success

Не используйте все заглавные буквы для неэкспортированных переменных, и всегда заключайте в кавычки ваши переменные, если у вас нет определенного NEED , а не.

...