Intereting Posts
Обработка деинтерлейсинга HD HD создать статический IP-адрес Ethernet на artik10 Загрузить pdf-файлы с помощью wget Список папок, содержащих более X изображений Как я могу сохранить специальный символ, не заменяя его подчеркиванием? Подсчитайте самый длинный отрезок последовательных паттернов Перенаправление stdin с stdout в файл как записывать всех, кто входит в мои Linux-машины, и записывать их Как я могу узнать, была ли исправлена ​​моя система Ubuntu, поэтому она не может быть отвратительной для Dirty Cow? Как я могу подавить ненужный вывод emacsclient? Вывод команды при передаче по другой команде Как получить имя NetBIOS от IP-адреса Изображение проверки подлинности Linux существует на URL-адресе Apache Запустить скрипт на хосте при запуске виртуальной машины с помощью virt-manager Удаленное начало сеанса экрана через ssh и немедленное закрытие сеанса ssh

Условное присвоение на основе переменной среды

В сценарии bash я назначаю локальную переменную, так что значение зависит от внешней глобальной переменной среды ( $MYAPP_ENV ).

 if [ "$MYAPP_ENV" == "PROD" ] then SERVER_LOGIN=foobar123@prod.example.com else SERVER_LOGIN=foobar987@test.example.com fi 

Есть ли более короткий (но чистый) способ написать вышеприведенное задание? (Предположительно, используя какой-то условный оператор / inline if.)

Вы также можете использовать case / switch в bash для этого:

 case "$MYAPP_ENV" in PROD) SERVER_LOGIN="foobar123@prod.example.com" ;; *) SERVER_LOGIN="foobar987@test.example.com" ;; esac 

Или этот метод:

 [ "$MYAPP_ENV" = PROD ] && SERVER_LOGIN=foobar123@prod.example.com || SERVER_LOGIN=foobar987@test.example.com 

Пытаться:

 [ condition ] && var=value_when_true || var=value_when_false 

Если ваше назначение является числовым, вы можете использовать тройную операцию bash :

 (( assign_condition ? value_when_true : value_when_false )) 

Вы можете использовать && и || операторы

 [ "$MYAPP_ENV" == "PROD" ] && SERVER_LOGIN=foobar123@prod.example.com || SERVER_LOGIN=foobar987@test.example.com