Asignar valor predeterminado en Bash

Aashish Sunuwar 1 abril 2022
Asignar valor predeterminado en Bash

Este artículo presentará los enfoques utilizados para proporcionar un valor predeterminado a las variables en los scripts bash.

Proporcionar un valor predeterminado a una variable en un script Bash

El enfoque básico que seguimos al proporcionar un valor predeterminado en un script bash se encuentra a continuación.

variable={$variable:-value}

Pero podemos usar una mejor forma abreviada de esto usando dos puntos al principio.

: ${variable:=value}

Los dos puntos al principio ignoran los argumentos.

Utilice ${variable-value} o ${variable:-value}

echo ${greet-hello}
echo ${greet:-hello}
greet=
echo ${greet-hello}
echo ${greet:-hello}

Producción :

hello
hello

hello

La diferencia clave entre usar ${greet-hello} y ${greet:-hello} es que ${greet-hello} usará el valor predeterminado hello si la variable saludar nunca se estableció a un valor. Por otro lado, ${greet:-hello} utilizará el valor predeterminado si la variable nunca se estableció en un valor o se estableció en nulo, es decir, greet= .

Utilice ${variable:-value} o ${variable:=value}

echo ${greet:-Hello}
echo ${greet:-Namaste}
echo ${greet:=Bonjour}
echo ${greet:=Halo}

Producción :

Hello
Namaste
Bonjour
Bonjour

El uso de :- sustituirá la variable con el valor predeterminado, mientras que := asignará el valor predeterminado a la variable.

En el ejemplo dado,

  • ${greet:-Namaste} imprime Namaste ya que ${greet:-Hello} ha sustituido la variable greet con el valor por defecto ya que no estaba establecido.
  • ${greet:=Bonjour} establecerá el valor de greet a Bonjour ya que su valor nunca fue establecido.
  • ${greet:=Halo} no utilizará el valor por defecto Halo ya que la variable greet tenía un valor establecido previamente, es decir, Bonjour.

Artículo relacionado - Bash Variable