私は変数をリストの最初の「nullではない」値に設定できる「nullマージ」が大好きです。多くの言語がこれをサポートしています。たとえば、次のようになります。
氏#:
String myStr = string1 ?? string2 ?? "default";
JavaScript:
var myStr = string1 || string2 || "default";
...など。変数を設定するためにBashでこれを行うことができるかどうか疑問に思います。
偽:
MY_STR=$ENV{VAR_NAME}??$ANOTHER_VAR??"default";
答え1
POSIXシェル(およびinclusion bash
)に対応する内容は次のとおりです。
${FOO:-${BAR:-default}}
また見なさい:
${FOO-${BAR-default}}
バリアントは空の文字列であるかどうかではなく、変数が設定されているかどうかを確認します(変数が設定されているが空の場合は異なります)。
答え2
間接的。
my_str="${var_name:-${another_var:-default}}"