以空合并方式设置shell变量


20

我真的很喜欢“空合并”,您可以在其中将变量设置为事物列表中的第一个“非空”值。许多语言都支持此功能,例如:

C#:

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

JavaScript:

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

...等等。我只是好奇是否可以在Bash中设置变量?

伪:

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

Answers:


29

POSIX Shell(因此包括bash)等效于:

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

另请参阅:

${FOO-${BAR-default}}

变量,它检查是否设置了变量,而不是解析为空字符串(在设置了变量但为空的情况下有所不同)。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.