私は "null合体"が本当に好きです。ここでは、変数をリスト内の最初の "非null"値に設定できます。多くの言語がこれをサポートしています。例えば:
C#:
String myStr = string1 ?? string2 ?? "default";
JavaScript:
var myStr = string1 || string2 || "default";
...等。変数を設定するためにこれをBashで実行できるかどうか知りたいだけです。
疑似:
MY_STR=$ENV{VAR_NAME}??$ANOTHER_VAR??"default";
POSIXシェル(bash
を含む)と同等のものは次のようになります。
${FOO:-${BAR:-default}}
以下も参照してください。
${FOO-${BAR-default}}
変数が空の文字列に解決されるかどうかではなく、変数が設定されているかどうかをチェックするバリアント(変数は設定されているが空である場合に違いがあります)。
直接ではありません。
my_str="${var_name:-${another_var:-default}}"