scripts shell sont un puissant moyen de manipuler les données et les commandes dans le système d'exploitation Unix. Des variables nulles sont difficiles à tester , sauf si vous savez la bonne façon de le faire. Dans d'autres langues , les variables contenant des choses comme " " normalement classés comme nulle ne sont pas dans le cas du shell Unix tels qu'ils sont interprétés différemment . Avoir des valeurs NULL dans des variables est souvent un indicateur utile de problèmes survenant dans un script lorsque les valeurs ne sont pas attribués automatiquement comme prévu. Lorsque cela se produit mesures peuvent être prises et les problèmes rectifié ou le script peut prendre une voie totalement différente pour résoudre le problème . Instructions
1
Assurez-vous que la variable à tester est pas le contraire . Une façon simple de le faire est de tester une variable qui n'a pas été attribué à une valeur avant l'essai , en ne l'initialisation de la variable telle que var = "" . Dans cet exemple "," devrait être classée comme une chaîne ( pas vraiment de longueur zéro) et serait interprété comme une valeur en script shell .
2
test la variable longueur zéro en utilisant le shell standard Unix syntaxe qui (dans la version Bourne shell) est:
if [- z " $ var" ]
puis
# autres commandes ...
< p > fi
Cela signifie que si la variable " $ var" n'a pas de longueur , il est une valeur nulle. L'action peut alors être prise sur la base du test de la déclaration "puis" qui suit.
3
test d'une variable pour une valeur nulle, et si elle ne contient pas de valeur , attribuer une en une seule commande. Ceci peut être réalisé en utilisant une commande spéciale de coquille comme suit :
varisnullornot = $ { var : NULL }
Dans ce cas, la variable " varisnullornot " sera assignée la valeur contenue dans le variable " var " si elle a une valeur . Si elle n'a pas de valeur, alors le " varisnullornot " variable sera attribué le mot « NULL », qui peut ensuite être testé comme suit :
if ["$ varisnullornot " = " NULL "]
puis
echo " Var est une variable null"
else
echo "\\ " varisnullornot \\ "" est attribuée la valeur contenue dans \\ " var \\" "
fi