HOWTO · Bash

Attribuer une valeur par défaut dans Bash

Cet article présentera différentes approches pour fournir une valeur par défaut à une variable dans bash

Sur cette page

Cet article présentera les approches utilisées pour fournir une valeur par défaut aux variables dans les scripts bash.

Fournir une valeur par défaut à une variable dans un script bash

L’approche de base que nous suivons tout en fournissant une valeur par défaut dans un script bash est ci-dessous.

variable={$variable:-value}

Mais nous pouvons utiliser une meilleure forme abrégée en utilisant deux-points au début.

: ${variable:=value}

Les deux-points au début ignorent les arguments.

Utilisez ${variable-value} ou ${variable-value}

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

Production :

hello
hello

hello

La principale différence entre l’utilisation de ${greet-hello} et ${greet-hello} est que ${greet-hello} utilisera la valeur par défaut hello si la variable greet n’a jamais été définie. à une valeur. D’autre part, ${greet-hello} utilisera la valeur par défaut si la variable n’a jamais reçu de valeur ou si elle a été définie sur null, c’est-à-dire greet.

Utilisez ${variable:-value} ou ${variable:=value}

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

Production :

Hello
Namaste
Bonjour
Bonjour

L’utilisation de :- remplacera la variable par la valeur par défaut, tandis que := attribuera la valeur par défaut à la variable.

Dans l’exemple donné,

  • ${greet:-Namaste} imprime Namaste car ${greet:-Hello} a remplacé la variable greet par la valeur par défaut car elle n’était pas définie.
  • ${greet:=Bonjour} définira la valeur de greet sur Bonjour car sa valeur n’a jamais été définie.
  • ${greet:=Halo} n’utilisera pas la valeur par défaut Halo car la variable greet a été définie précédemment, c’est-à-dire Bonjour.