Scripting · 8 min read · Nov 14, 2025

Script Shell Partie 2 : Accepter des Entrées et Effectuer des Calculs Shell

Salut ! Cet article est la deuxième partie de la série de tutoriels sur le script shell de Howtoforge. À ce stade, je suppose que vous avez lu la première partie de la série et que vous savez comment créer un script simple et l’exécuter. Dans cette deuxième partie, vous apprendrez comment accepter des entrées de l’utilisateur et les traiter via le script shell. Commençons !

Variables dans Linux

Tout comme les langages de programmation, le shell Linux a la capacité de stocker des données dans des variables. Une variable est un conteneur qui stocke temporairement des données qui seront traitées via un langage de programmation. Il existe deux types de variables dans Linux : les variables d’environnement et les variables shell.

Variables d’Environnement

Les variables d’environnement sont les variables par défaut dans Linux et sont utilisées pour transmettre des informations entre les processus dans le shell. Les variables d’environnement sont sensibles à la casse et doivent toujours être en majuscules pour y accéder.

Le tableau ci-dessous montre les variables d’environnement courantes dans le shell Linux :

Nom de la variableUtilisation
BASHContient le chemin complet de l’interpréteur de commandes pour les scripts Bash
BASH_VERSIONContient la version de sortie de bash de la machine actuellement utilisée
HOMEContient le chemin relatif du répertoire personnel.
LOGNAMEContient le nom du compte de l’utilisateur actuellement connecté
OSTYPEContient une chaîne qui décrit le système d’exploitation actuel de la machine utilisée
PATHContient un chemin absolu séparé par des deux-points des fichiers exécutables dans Linux
PWDContient le répertoire de travail actuel du shell
SHELLContient le shell de ligne de commande préféré
USERFonctionne de manière similaire à LOGNAME. Il contient le nom du compte de l’utilisateur actuellement connecté
_Contient le nom de la commande récemment utilisée dans le shell

Pour afficher la valeur d’une variable d’environnement, l’utilisateur doit préfixer un signe dollar ($) à la variable à accéder. Par exemple, pour afficher certaines informations système comme le répertoire de travail actuel, l’utilisateur connecté et le type de système d’exploitation en utilisant echo, nous utilisons :

#!/bin/bash  
 echo $PWD  
 echo $LOGNAME  
 echo $OSTYPE

Le résultat est :

Pour obtenir la liste complète des variables d’environnement dans Linux, utilisez la commande env.

Changer les valeurs des variables d’environnement

Pour fournir de la flexibilité au système, ces variables d’environnement peuvent être manipulées. Pour définir une valeur à une variable d’environnement, utilisez une expression d’affectation (signe égal).

Exemple :

#!/bin/bash  
 echo $USER  
 USER="nouvel utilisateur"  
 echo $USER

Le résultat du script est :

Lorsque vous exécutez le script, au début, le $USER dans la ligne echo $USER montre la valeur de la variable USER. En utilisant un opérateur d’affectation (=), la variable USER change sa valeur. Cependant, si l’utilisateur assigne des valeurs inconnues à une variable d’environnement, le shell créera une autre variable shell similaire à la variable d’environnement dans le contexte local du script, mais cela n’affectera pas le comportement d’autres applications. Cela signifie qu’une fois notre script fermé, la variable USER conservera sa valeur par défaut.

Notez que dans notre exemple précédent, nous omettons le signe dollar ($) dans le nom de la variable lors de la manipulation des valeurs des variables d’environnement, comme dans la ligne USER=”nouvel utilisateur”. De plus, lors de l’utilisation de l’opérateur d’affectation, il ne doit pas y avoir d’espace entre le USER et le signe =. Ajouter un espace entre eux crée une erreur.

Variables Shell

Le shell permet également à l’utilisateur de déclarer des variables. Tout comme en PHP, pour déclarer une variable dans les scripts shell, l’utilisateur n’a pas à se soucier de déclarer son type de données ; l’interpréteur détectera automatiquement le type de données de la variable en fonction des données que l’utilisateur y stocke pendant l’exécution.

Règles pour nommer les variables shell

Tout comme dans tout langage de programmation, il existe des règles pour nommer les variables shell. Voici un résumé des règles :

  1. Les noms des variables doivent commencer par une lettre ou un underscore.
  2. Ils ne doivent contenir que des caractères alphanumériques ou un underscore.
  3. Les variables sont sensibles à la casse, donc les variables path, PATH et Path sont différentes.

Pour prouver cette règle, nous allons créer un script simple ci-dessous :

#!/bin/bash  
 12abc=10  
 abc#*=10  
 _abc=10  
 _ABC=2  
 echo $12abc $abc#* $_abc $_ABC

Les lignes 2 et 3 renvoient une erreur “commande introuvable” car la variable 12abc commence par un caractère numérique et la variable abc#* contient des caractères illégaux. Nous avons également prouvé que _abc et _ABC sont des variables différentes et que la ligne _ABC=2 ne remplace pas la valeur de _abc.

Affecter des valeurs aux variables shell en utilisant la commande read :

read est une commande qui permet d’accepter des entrées de l’utilisateur. La syntaxe pour utiliser la commande read est :

read 

Par exemple, nous allons créer un script qui permettra à un utilisateur d’entrer son prénom et son nom de famille et de les afficher. Pour faire savoir à l’utilisateur quoi faire, nous affichons une invite utilisateur avec la commande echo.

#!/bin/bash  
 echo "Votre prénom : "  
 read fname  
 echo "Votre nom de famille:"  
 read lname  
 echo "Bonjour $fname $lname ! J'apprends à créer des scripts shell."

Le résultat est :

Veuillez noter que, comme dans notre exemple précédent, nous n’avons pas à déclarer une variable pour l’utiliser. L’interpréteur crée également automatiquement la variable utilisée dans la commande read. Cependant, dans l’exemple, nous avons utilisé à plusieurs reprises la commande echo pour créer une invite à l’utilisateur. La commande read a également la capacité de créer une invite tout en acceptant les entrées de l’utilisateur. La syntaxe pour utiliser une invite dans la commande read est :

read -p "Votre invite : " 

Pour simplifier notre code précédent, nous pouvons reconstruire le code comme suit :

#!/bin/bash  
read -p "Votre prénom : " fname  
read -p "Votre nom de famille : " lname  
echo "Bonjour $fname $lname ! J'apprends à créer des scripts shell."

Un autre avantage de la commande read est que l’invite de commande est juste après le texte et non sur la ligne suivante.

La commande read peut également être utilisée pour accepter des mots de passe. Contrairement aux entrées ordinaires, les mots de passe sont masqués pour des raisons de sécurité. La syntaxe pour accepter un mot de passe est :

read -s -p "votre invite" 

Effectuer des calculs simples en utilisant le shell

En plus d’accepter des entrées et d’afficher des sorties, le shell bash a également une option arithmétique intégrée. Le tableau ci-dessous résume les opérateurs arithmétiques intégrés du shell Bash.

OpérateurDescriptionSyntaxeUtilisation
+Additiona=$((b+c))Ajoute la valeur de b et c et la stocke dans la variable a
-Soustractiona=$((b-c))Soustrait la valeur de c de b et la stocke dans la variable a
*Multiplicationa=$((b*c))Multiplie la valeur de b et c et la stocke dans la variable a
/Divisiona=$((b/c))Divise la valeur de b par c et la stocke dans la variable a
%Modulusa=$((b%c))Effectue une division modulo de b et c et la stocke dans la variable a
++Pré-incrément$((++aa))Incrémente immédiatement la valeur de la variable a
++Post-incrément$((a++))Incrémente la valeur de la variable a et reflète les changements à la ligne suivante
Pré-décrément$((–a))Décrémente immédiatement la valeur de la variable a
Post-décrément$((a–))Décrémente la valeur de la variable a et reflète les changements à la ligne suivante
Exponentiation$((a2))Élève la valeur de a à l’exposant de 2
+=Plus égal$((a+=b))Ajoute la valeur de a et b et la stocke dans la variable a
-=Moins égal$((a-=b))Soustrait la valeur de b de a et la stocke dans la variable a
*=Fois égal$((a*=b))Multiplie la valeur de a et b et la stocke dans la variable a
/=Slash égal$((a/=b))Divise la valeur de a par b et la stocke dans la variable a
%=Mod-égal$((a%=b))Effectue une division modulo entre a et b et la stocke dans la variable a

Notez qu’à chaque fois que vous effectuez une instruction arithmétique, toutes nos variables seront entourées d’un signe dollar et de doubles parenthèses. En faisant cela, l’interpréteur traite les valeurs de nos variables comme des nombres entiers. Sans cela, l’interpréteur traite les valeurs de la variable comme une chaîne. Pour avoir un exemple, voyez le script ci-dessous :

#!/bin/bash  
 read -p "Entrez int1 : " a  
 read -p "Entrez int2 : " b  
 echo $((a+b))  
 c=$a+$b  
 echo $c

Lorsque nous exécutons notre exemple, la ligne $((a+b)) additionne les valeurs de l’utilisateur stockées dans les variables a et b respectivement, tandis que c=$a+$b traite les variables a et b comme des chaînes.

Conclusion

Nous avons couvert comment accepter des entrées et les stocker dans une variable et comment effectuer des opérations arithmétiques dans le script shell bash. Dans la prochaine partie, nous aborderons les structures de contrôle et en particulier la structure de décision.

Références :

Le Projet d’Information Linux. (2007). Consulté le 29 avril 2015, depuis Linfo.org : http://www.linfo.org/

Cooper, M. (n.d.). Guide Avancé de Scripting Bash. Consulté le 29 avril 2015, depuis http://www.tldp.org/LDP/abs/html/

Variables d’Environnement. (n.d.). Consulté le 29 avril 2015, depuis la Documentation Ubuntu : https://help.ubuntu.com/community/EnvironmentVariables

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.