Configurando uma variável de shell de maneira nula coalescente


19

Eu realmente gosto de "coalescência nula", onde você pode definir uma variável para o primeiro valor "não nulo" em uma lista de coisas. Muitos idiomas suportam isso, por exemplo:

C #:

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

JavaScript:

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

... etc Só estou curioso para saber se isso pode ser feito no Bash para definir uma variável?

pseudo:

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

Respostas:


28

O bashequivalente do shell POSIX (incluído ) seria:

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

Veja também o:

${FOO-${BAR-default}}

variante que verifica se a variável está definida ou não, em vez de resolver para a sequência vazia ou não (o que faz a diferença nos casos em que uma variável está definida, mas vazia).


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.