dev*_*os1 33 shell bash variable
我真的很喜欢“空合并”,您可以在其中将变量设置为事物列表中的第一个“非空”值。许多语言都支持这一点,例如:
C#:
String myStr = string1 ?? string2 ?? "default";
Run Code Online (Sandbox Code Playgroud)
JavaScript:
var myStr = string1 || string2 || "default";
Run Code Online (Sandbox Code Playgroud)
...等等。我只是好奇这是否可以在 Bash 中完成以设置变量?
伪:
MY_STR=$ENV{VAR_NAME}??$ANOTHER_VAR??"default";
Run Code Online (Sandbox Code Playgroud)
Sté*_*las 47
POSIX shell(所以包括bash)等价物是:
${FOO:-${BAR:-default}}
Run Code Online (Sandbox Code Playgroud)
另见:
${FOO-${BAR-default}}
Run Code Online (Sandbox Code Playgroud)
变量检查是否设置了变量,而不是它是否解析为空字符串(这在变量设置但为空的情况下有所不同)。
Ign*_*ams 10
不直接。
my_str="${var_name:-${another_var:-default}}"
Run Code Online (Sandbox Code Playgroud)