Встановлення змінної оболонки в нульовий спосіб злиття


20

Мені дуже подобається "null coalescing", де ви можете встановити змінну на перше "non-null" значення в списку речей. Багато мов це підтримують, наприклад:

C #:

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

JavaScript:

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

... тощо. Мені просто цікаво, чи можна це зробити в Bash, щоб встановити змінну?

псевдо:

MY_STR=$ENV{VAR_NAME}??$ANOTHER_VAR??"default";

Відповіді:


29

Оболонка POSIX (так включає bash) еквівалент буде:

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

Дивіться також:

${FOO-${BAR-default}}

варіант, який перевіряє, чи встановлена ​​змінна чи ні замість того, чи відповідає вона порожній рядку чи ні (що робить різницю у випадках, коли змінна встановлена, але порожня).


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.