Impostazione di una variabile shell in modo null coalescente


20

Mi piace molto la "coalescenza nulla", in cui puoi impostare una variabile sul primo valore "non null" in un elenco di cose. Molte lingue supportano questo, ad esempio:

C #:

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

JavaScript:

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

...eccetera. Sono solo curioso di sapere se questo può essere fatto in Bash per impostare una variabile?

pseudo:

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

Risposte:


29

La shell POSIX (quindi include bash) equivalente sarebbe:

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

Vedi anche:

${FOO-${BAR-default}}

variante che controlla se la variabile è impostata o meno invece che se si risolve o meno nella stringa vuota (il che fa la differenza nei casi in cui una variabile è impostata ma vuota).


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.