Unix / Linux - Utilisation des variables Shell
Dans ce chapitre, nous allons apprendre à utiliser les variables Shell sous Unix. Une variable est une chaîne de caractères à laquelle nous attribuons une valeur. La valeur attribuée peut être un nombre, du texte, un nom de fichier, un périphérique ou tout autre type de données.
Une variable n'est rien de plus qu'un pointeur vers les données réelles. Le shell vous permet de créer, d'affecter et de supprimer des variables.
Noms de variables
Le nom d'une variable ne peut contenir que des lettres (a à z ou A à Z), des chiffres (0 à 9) ou le caractère de soulignement (_).
Par convention, les variables shell Unix auront leurs noms en MAJUSCULES.
Les exemples suivants sont des noms de variables valides -
_ALI
TOKEN_A
VAR_1
VAR_2
Voici les exemples de noms de variables non valides -
2_VAR
-VARIABLE
VAR1-VAR2
VAR_A!
La raison pour laquelle vous ne pouvez pas utiliser d'autres caractères tels que !, *, ou - est que ces caractères ont une signification particulière pour le shell.
Définition des variables
Les variables sont définies comme suit -
variable_name=variable_value
Par exemple -
NAME="Zara Ali"
L'exemple ci-dessus définit la variable NAME et lui affecte la valeur "Zara Ali". Les variables de ce type sont appeléesscalar variables. Une variable scalaire ne peut contenir qu'une seule valeur à la fois.
Shell vous permet de stocker toute valeur que vous souhaitez dans une variable. Par exemple -
VAR1="Zara Ali"
VAR2=100
Accéder aux valeurs
Pour accéder à la valeur stockée dans une variable, préfixez son nom avec le signe dollar ($) -
Par exemple, le script suivant accédera à la valeur de la variable définie NAME et l'imprimera sur STDOUT -
#!/bin/sh
NAME="Zara Ali"
echo $NAME
Le script ci-dessus produira la valeur suivante -
Zara Ali
Variables en lecture seule
Shell fournit un moyen de marquer des variables en lecture seule à l'aide de la commande en lecture seule. Une fois qu'une variable est marquée en lecture seule, sa valeur ne peut pas être modifiée.
Par exemple, le script suivant génère une erreur lors de la tentative de modification de la valeur de NAME -
#!/bin/sh
NAME="Zara Ali"
readonly NAME
NAME="Qadiri"
Le script ci-dessus générera le résultat suivant -
/bin/sh: NAME: This variable is read only.
Désactiver les variables
La désactivation ou la suppression d'une variable ordonne au shell de supprimer la variable de la liste des variables qu'il suit. Une fois que vous avez désactivé une variable, vous ne pouvez pas accéder à la valeur stockée dans la variable.
Voici la syntaxe pour annuler la définition d'une variable définie à l'aide du unset commande -
unset variable_name
La commande ci-dessus annule la valeur d'une variable définie. Voici un exemple simple qui montre comment fonctionne la commande -
#!/bin/sh
NAME="Zara Ali"
unset NAME
echo $NAME
L'exemple ci-dessus n'imprime rien. Vous ne pouvez pas utiliser la commande unset pourunset variables marquées readonly.
Types de variables
Lorsqu'un shell est en cours d'exécution, trois principaux types de variables sont présents -
Local Variables- Une variable locale est une variable présente dans l'instance actuelle du shell. Il n'est pas disponible pour les programmes lancés par le shell. Ils sont définis à l'invite de commande.
Environment Variables- Une variable d'environnement est disponible pour tout processus enfant du shell. Certains programmes ont besoin de variables d'environnement pour fonctionner correctement. Habituellement, un script shell définit uniquement les variables d'environnement nécessaires aux programmes qu'il exécute.
Shell Variables- Une variable shell est une variable spéciale définie par le shell et requise par le shell pour fonctionner correctement. Certaines de ces variables sont des variables d'environnement tandis que d'autres sont des variables locales.