Nous utilisons des cookies pour améliorer votre expérience. En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies.


Politique de confidentialité

Utilisation de variables dans les scripts shell

 

Utilisation de variables dans les scripts shell

Il est utile d'exécuter des commandes individuelles à partir du script shell, mais cela a ses limites. Souvent, vous voudrez incorporer d'autres données dans vos commandes shell pour traiter l'information. Vous pouvez le faire en utilisant des variables. Les variables vous permettent de stocker temporairement des informations dans le script shell pour les utiliser avec d'autres commandes du script.

Variables d'environnement

L'interpréteur de commandes maintient des variables d'environnement qui stockent des informations système spécifiques, telles que le nom du système, le nom de l'utilisateur connecté au système, l'ID système de l'utilisateur (appelé UID), le répertoire d'origine par défaut de l'utilisateur et le chemin de recherche utilisé par l'interpréteur de commandes pour trouver des programmes.

Vous pouvez accéder à ces variables d'environnement à partir de vos scripts en utilisant le nom de la variable d'environnement précédé du signe dollar.

#!/bin/bash
echo "Utilisateur actuel $USER"
echo "Le shell courant : $SHELL" 
echo "UID : $UID" 
echo "répertoire personnel : $HOME" 

exit 0
devinfo@ubuntu:~/scripts$ vars.sh
Utilisateur actuel devinfo
Le shell courant : /bin/bash
UID : 1000
répertoire personnel : /home/devinfo

Remarquez que les variables d'environnement dans les commandes echo sont remplacées par leurs valeurs actuelles lorsque le script est exécuté. Remarquez également que nous avons pu placer la variable système $USER entre guillemets dans la première chaîne de caractères, et que le script shell a pu comprendre ce que nous voulions dire.

Variables utilisateur

En plus des variables d'environnement, un script shell vous permet de définir et d'utiliser vos propres variables dans le script. La définition de variables vous permet de stocker temporairement des données et de les utiliser tout au long du script.

Les variables utilisateur peuvent être n'importe quelle chaîne de texte comprenant jusqu'à 20 lettres, chiffres ou un caractère de soulignement. Les variables utilisateur sont sensibles à la casse. Ainsi, la variable Var1 est différente de la variable var1.

Les valeurs sont attribuées aux variables utilisateur à l'aide d'un signe égal. Aucun espace ne peut figurer entre la variable, le signe égal et la valeur. Voici quelques exemples d'affectation de valeurs à des variables utilisateur :

#!/bin/bash
a=5
age=25
note=17.5
nom="Mostafa"

echo $a $nom $age $note

exit 0
devinfo@ubuntu:~/scripts$ vars.sh
5 Mostafa 25 17.5

Le script shell stocke toutes les valeurs des variables sous forme de chaînes de texte, il appartient donc aux commandes individuelles du shell de gérer correctement le type de données utilisé pour la valeur de la variable.

Tout comme les variables système, les variables utilisateur sont référencées à l'aide du signe dollar.

Chaque fois que la variable est référencée, elle produit la valeur qui lui est actuellement attribuée. Les variables définies dans le script shell conservent leurs valeurs pendant toute la durée de vie du script shell, mais sont supprimées une fois le script shell terminé.

Substitution de commandes

L'une des caractéristiques les plus utiles des scripts shell est la possibilité d'extraire des informations de la sortie d'une commande et de les affecter à une variable. Une fois que vous avez assigné la sortie à une variable, vous pouvez utiliser cette valeur n'importe où dans votre script. C'est très pratique lorsque vous traitez des données dans vos scripts.

Il existe deux façons d'affecter la sortie d'une commande à une variable :

  •  Le caractère backtick (`)
  •  Le format $()

Faites attention au caractère backtick, qui n'est pas le caractère normal de guillemet simple que vous avez l'habitude d'utiliser pour les chaînes de caractères.

La substitution de commandes vous permet d'affecter la sortie d'une commande shell à une variable. Bien que cela ne semble pas être grand-chose, il s'agit d'une composante majeure de la programmation de scripts.

Vous devez entourer toute la commande de la ligne de commande avec les caractères backtick :

#!/bin/bash

d=`date`
echo "date : $d"

# ou avec le format $()

dd=$(date)
echo "date : $dd"

exit 0
evinfo@ubuntu:~/scripts$ vars.sh
date : mer. 20 oct. 2021 13:50:51 PDT
date : mer. 20 oct. 2021 13:50:51 PDT

Partager ce cours avec tes amis :
Rédigé par ESSADDOUKI Mostafa
ESSADDOUKI
The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.