Установка переменной оболочки в ноль слияния

20

Я действительно люблю "объединение нулей", где вы можете установить переменную на первое "ненулевое" значение в списке вещей. Многие языки поддерживают это, например:

C #:

String myStr = string1 ?? string2 ?? "default";

JavaScript:

var myStr = string1 || string2 || "default";

...и т.д. Мне просто любопытно, можно ли это сделать в Bash для установки переменной?

псевдо:

MY_STR=$ENV{VAR_NAME}??$ANOTHER_VAR??"default";
devios1
источник

Ответы:

29

bashЭквивалент оболочки POSIX (включая ) будет:

${FOO:-${BAR:-default}}

Смотрите также:

${FOO-${BAR-default}}

вариант, который проверяет, установлена ​​ли переменная или нет, вместо того, разрешается ли она в виде пустой строки или нет (что имеет значение в случаях, когда переменная установлена, но пуста).

Стефан Шазелас
источник
5

Не напрямую.

my_str="${var_name:-${another_var:-default}}"
Игнасио Васкес-Абрамс
источник