# Setting a shell variable in a null coalescing fashion

I'm really fond of "null coalescing", where you can set a variable to the first "non-null" value in a list of things. Many languages support this, for example:

C#:

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


JavaScript:

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


...etc. I'm just curious if this can be done in Bash to set a variable?

pseudo:

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

-

The POSIX shell (so includes bash) equivalent would be:

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


${FOO-${BAR-default}}

my_str="${var_name:-${another_var:-default}}"