Establecer una variable de shell en una forma de fusión nula


20

Soy realmente aficionado a la "fusión nula", donde puede establecer una variable en el primer valor "no nulo" en una lista de cosas. Muchos idiomas admiten esto, por ejemplo:

C#:

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

JavaScript:

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

... etc. Tengo curiosidad por saber si esto se puede hacer en Bash para establecer una variable.

seudo:

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

Respuestas:


29

El bashequivalente de shell POSIX (así incluido ) sería:

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

Ver también el:

${FOO-${BAR-default}}

variante que comprueba si la variable está configurada o no en lugar de si se resuelve en la cadena vacía o no (lo que marca la diferencia en los casos en que una variable está configurada pero vacía).


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.