Définition d'une variable shell d'une manière coalescente nulle


20

J'aime vraiment la «coalescence nulle», où vous pouvez définir une variable à la première valeur «non nulle» dans une liste de choses. De nombreuses langues le prennent en charge, par exemple:

C #:

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

JavaScript:

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

...etc. Je suis juste curieux de savoir si cela peut être fait dans Bash pour définir une variable?

pseudo:

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

Réponses:


29

L' bashéquivalent du shell POSIX (donc inclut ) serait:

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

Voir aussi:

${FOO-${BAR-default}}

variante qui vérifie si la variable est définie ou non au lieu de se résoudre à la chaîne vide ou non (ce qui fait une différence dans les cas où une variable est définie mais vide).


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.