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 variable | Utilisation |
| BASH | Contient le chemin complet de l’interpréteur de commandes pour les scripts Bash |
| BASH_VERSION | Contient la version de sortie de bash de la machine actuellement utilisée |
| HOME | Contient le chemin relatif du répertoire personnel. |
| LOGNAME | Contient le nom du compte de l’utilisateur actuellement connecté |
| OSTYPE | Contient une chaîne qui décrit le système d’exploitation actuel de la machine utilisée |
| PATH | Contient un chemin absolu séparé par des deux-points des fichiers exécutables dans Linux |
| PWD | Contient le répertoire de travail actuel du shell |
| SHELL | Contient le shell de ligne de commande préféré |
| USER | Fonctionne 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 $OSTYPELe 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 $USERLe 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 :
- Les noms des variables doivent commencer par une lettre ou un underscore.
- Ils ne doivent contenir que des caractères alphanumériques ou un underscore.
- 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 $_ABCLes 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érateur | Description | Syntaxe | Utilisation |
| + | Addition | a=$((b+c)) | Ajoute la valeur de b et c et la stocke dans la variable a |
| - | Soustraction | a=$((b-c)) | Soustrait la valeur de c de b et la stocke dans la variable a |
| * | Multiplication | a=$((b*c)) | Multiplie la valeur de b et c et la stocke dans la variable a |
| / | Division | a=$((b/c)) | Divise la valeur de b par c et la stocke dans la variable a |
| % | Modulus | a=$((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 $cLorsque 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
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.