Tester l'existence d'une variable avec test -z
Dans cette étape, vous apprendrez à vérifier si une variable est vide ou non définie en utilisant la commande test
avec l'option -z
. Cela est utile dans les scripts pour prendre des décisions en fonction de l'existence d'une valeur dans une variable.
La commande test
est utilisée pour évaluer des expressions conditionnelles. L'option -z
vérifie si la longueur d'une chaîne de caractères est nulle. Si la chaîne est vide (ou si la variable n'est pas définie), le test est vrai.
Testons si une variable nommée MY_VARIABLE
est définie. Tout d'abord, nous nous assurerons qu'elle n'est pas définie.
Tapez la commande suivante et appuyez sur Entrée :
unset MY_VARIABLE
La commande unset
supprime une variable. Maintenant, utilisons test -z
pour vérifier si MY_VARIABLE
est vide. Nous allons la combiner avec echo
pour voir le résultat du test. L'opérateur &&
exécute la deuxième commande seulement si la première commande réussit (retourne une valeur vraie, ce qui pour test
signifie que la condition est remplie).
Tapez la commande suivante et appuyez sur Entrée :
test -z "$MY_VARIABLE" && echo "MY_VARIABLE is empty or not set"
Étant donné que nous venons de supprimer MY_VARIABLE
, la condition test -z "$MY_VARIABLE"
est vraie (la variable est vide), donc la commande echo
sera exécutée.
Vous devriez voir la sortie suivante :
MY_VARIABLE is empty or not set
Maintenant, définissons une valeur pour MY_VARIABLE
.
Tapez la commande suivante et appuyez sur Entrée :
MY_VARIABLE="Hello"
Maintenant, exécutons à nouveau la même commande test -z
.
Tapez la commande suivante et appuyez sur Entrée :
test -z "$MY_VARIABLE" && echo "MY_VARIABLE is empty or not set"
Cette fois, MY_VARIABLE
a la valeur "Hello", donc elle n'est pas vide. La condition test -z "$MY_VARIABLE"
est fausse, et la commande echo
ne sera pas exécutée.
Vous ne devriez voir aucune sortie de la commande echo
cette fois-ci.
Cela démontre comment test -z
peut être utilisé pour vérifier si une variable est vide ou non définie. C'est un concept fondamental utilisé dans les scripts shell pour la logique conditionnelle.