Festlegen einer Shell-Variablen auf eine Null-Koaleszenz-Weise


19

Ich mag das "Null-Verschmelzen", bei dem Sie eine Variable auf den ersten "Nicht-Null" -Wert in einer Liste von Dingen setzen können. Viele Sprachen unterstützen dies, zum Beispiel:

C #:

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

JavaScript:

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

...etc. Ich bin nur neugierig, ob dies in Bash gemacht werden kann, um eine Variable zu setzen.

Pseudo:

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

Antworten:


28

Das POSIX-Shell- bashÄquivalent wäre:

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

Siehe auch die:

${FOO-${BAR-default}}

Variante, die prüft, ob die Variable gesetzt ist oder nicht, und nicht, ob sie in eine leere Zeichenfolge aufgelöst wird oder nicht (was einen Unterschied in den Fällen macht, in denen eine Variable gesetzt, aber leer ist).


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.