Bash Scripting : Maîtriser les opérations arithmétiques
Les opérations arithmétiques sont un aspect fondamental des scripts bash, permettant aux scripts d’effectuer des calculs, d’automatiser des tâches et de prendre des décisions basées sur des données numériques. Bash fournit une variété de méthodes pour effectuer des opérations arithmétiques, de la simple addition et soustraction à des calculs plus complexes tels que les opérations en virgule flottante et la gestion des nombres scientifiques. Ce tutoriel vous guidera à travers différentes techniques et vous fournira des exemples pratiques pour améliorer vos compétences en matière de script bash.
Dans ce tutoriel, vous allez apprendre :
- Opérations arithmétiques de base dans Bash
- Utilisation d’outils externes pour des calculs avancés
- Application de l’arithmétique dans les boucles et les instructions conditionnelles
- Gestion des nombres à virgule flottante et de la notation scientifique
Comprendre les opérations arithmétiques Bash
Bash prend en charge diverses opérations arithmétiques. Nous commencerons par les opérations de base, puis nous passerons à des exemples plus avancés, démontrant comment Bash peut être utilisé pour des scripts efficaces et efficients.
Ajout de base
#!/bin/bash a=10 b=5 sum=$((a + b)) echo "Sum: $sum"Ce script Bash effectue une opération arithmétique simple : l’addition. La première ligne
a=10attribue la valeur 10 à la variablea. De même, la deuxième ligneb=5attribue la valeur 5 à la variableb. La troisième lignesum=$ ((a + b))calcule la somme des valeurs contenues dansaetbà l’aide de la syntaxe de développement arithmétique$ (( ))), et attribue le résultat à la variablesomme. La dernière ligneecho « Somme : $sum »utilise la commandeechopour afficher le texte « Somme : " suivi de la valeur de la variablesomme, affichant ainsi le résultat de l’addition (15 dans ce cas) sur la console. Ce script est un exemple de base de la façon d’utiliser des variables et de l’arithmétique dans Bash pour effectuer et afficher le résultat d’un calcul.soustraction
#!/bin/bash a=10 b=5 difference=$((a - b)) echo "Difference: $difference"Ce script Bash calcule la différence entre deux nombres. La ligne
a=10attribue la valeur 10 à la variablea. La ligne suivanteb=5attribue la valeur 5 à la variableb. Le script effectue ensuite une opération de soustraction avecdifference=$ ((a - b)),qui soustrait la valeur debdeaet attribue le résultat (5 dans ce cas) à la variabledifference.Enfin, le script utilise la commande
echodansecho « Différence : $difference »pour imprimer la phrase « Différence : " suivie de la différence calculée (5). Il s’agit d’un exemple simple d’exécution et d’affichage du résultat d’une opération arithmétique de base dans Bash.Multiplication
#!/bin/bash a=10 b=5 product=$((a * b)) echo "Product: $product"Ce script Bash calcule la différence entre deux nombres. La ligne
a=10attribue la valeur 10 à la variablea. La ligne suivanteb=5attribue la valeur 5 à la variableb. Le script effectue ensuite une opération de soustraction avecdifference=$ ((a - b)),qui soustrait la valeur debdeaet attribue le résultat (5 dans ce cas) à la variabledifference.Enfin, le script utilise la commande
echodansecho « Différence : $difference »pour imprimer la phrase « Différence : " suivie de la différence calculée (5). Il s’agit d’un exemple simple d’exécution et d’affichage du résultat d’une opération arithmétique de base dans Bash.Division
#!/bin/bash a=10 b=5 quotient=$((a / b)) echo "Quotient: $quotient"Ce script Bash calcule le quotient de deux nombres et affiche le résultat. Le script définit la valeur de
asur 10 etbsur 5. L’expressionquotient=$ ((a/b))effectue la division entière deaparbet attribue le résultat à la variablequotient. Étant donné queaetbsont tous deux des entiers, et queaest égal à 10 tandis quebest égal à 5, la division donne un quotient entier de 2.La dernière ligne
echo « Quotient : $quotient »utilise la commandeechopour afficher le texte « Quotient : " suivi de la valeur de la variablequotient. Dans ce cas, il affiche « Quotient : 2 » sur la console. Ce script est un exemple simple de la façon d’effectuer une division dans Bash.Fonctionnement du module
#!/bin/bash a=15 b=4 modulus=$((a % b)) echo "Modulus: $modulus"Ce script Bash calcule le module (reste de la division) de deux nombres et affiche le résultat. La première ligne
a=15attribue la valeur 15 à la variablea. La deuxième ligneb=4attribue la valeur 4 à la variableb. Le script effectue ensuite l’opération de module avecmodulus=$ ((a % b)),qui calcule le reste lorsqueaest divisé parb. Pour les valeurs données, le reste de la division de 15 par 4 est 3, il s’agit donc de la valeur attribuée aumodule.Le script renvoie le résultat à l’aide de echo
« Modulus : $modulus »,qui imprime la chaîne « Modulus : " suivie de la valeur demodulus(3 dans ce cas) sur la console. Cela démontre l’utilisation de l’opérateur de module dans Bash pour trouver le reste d’une opération de division.Incrémentation d’une variable
#!/bin/bash counter=0 ((counter++)) echo "Incremented value: $counter"Ce script Bash montre comment incrémenter (augmenter d’une unité) la valeur d’une variable. Le script commence par définir
counterà 0 aveccounter=0. La ligne suivante,((counter++)),est une expression arithmétique qui incrémente la valeur decounter. Dans ce contexte,++est un opérateur post-incrémentation, ce qui signifie qu’il augmente la valeur ducompteurde 1.Après cette opération, la valeur de
counterdevient 1. Enfin, le script affiche la valeur incrémentée à l’aide deecho « Valeur incrémentée : $counter». Cette commande imprime la chaîne « Valeur incrémentée : » suivie de la valeur actuelle decounter, qui est 1. Cet exemple est une démonstration simple de l’utilisation d’expressions arithmétiques pour incrémenter la valeur d’une variable dans Bash.Décrémentation d’une variable
#!/bin/bash counter=10 ((counter--)) echo "Decremented value: $counter"Ce script Bash montre comment décrémenter (diminuer d’un) la valeur d’une variable. Le script initialise la variable
compteuravec la valeur 10 à l’aidede counter=10. La ligne suivante,((counter--)), utilise une expression arithmétique qui utilise l’opérateur post-décrémentation--pour réduire la valeur decounterde 1. Après cette opération, la valeur ducompteurdevient 9.La dernière ligne du script,
echo « Valeur décrémentée : $counter »,utilise la commandeechopour afficher la chaîne « Valeur décrémentée : " suivie de la valeur mise à jour decompteur. Dans ce cas, il affiche « Valeur décrémentée : 9 » sur la console. Cet exemple illustre l’utilisation d’expressions arithmétiques dans Bash pour décrémenter la valeur d’une variable.Fonctionnement électrique
#!/bin/bash base=2 exponent=3 power=$((base**exponent)) echo "Power: $power"Ce script Bash calcule la puissance d’un nombre et affiche le résultat. Le script commence par attribuer la valeur 2 à la variable
baseet la valeur 3 àl’exposantvariable en utilisant les lignesbase=2etexposant=3, respectivement. La ligne suivante,power=$ ((base**exponent)), effectue l’opération power : elle élève labaseàl’exposant, qui dans ce cas calcule 2 élevé à la puissance 3.Le résultat de ce calcul, qui est de 8, est ensuite stocké dans la
puissancevariable. Enfin, le script renvoie ce résultat avec la commandeecho « Power : $power »,qui imprime la chaîne « Power : "suivie de lavaleur power (8 dans ce cas) sur la console. Cet exemple montre comment effectuer une exponentiation dans un script Bash.Utilisation de expr pour l’addition
#!/bin/bash a=10 b=5 sum=$(expr $a + $b) echo "Sum: $sum"Ce script Bash calcule la somme de deux nombres à l’aide de la commande
expr, qui est un utilitaire externe pour effectuer des opérations arithmétiques de base. La première lignea=10attribue la valeur 10 à la variablea. La deuxième ligneb=5attribue la valeur 5 à la variableb.L’opération clé est effectuée dans la ligne
sum=$ (expr $a + $b).Ici,expr $a + $bcalcule la somme des valeurs stockées dansaetb. La syntaxe$ (...)est la substitution de commande, qui capture la sortie de la commandeexpret l’affecte à la variablesomme. Par conséquent,sumaura la valeur 15, qui est le résultat de l’addition de 10 et 5.La dernière ligne
echo « Sum : $sum »imprime le résultat à l’aide de la commandeecho. Il affiche la chaîne « Somme : » suivie de la valeur desomme, affichant ainsi « Somme : 15 » sur la console. Ce script est un exemple pratique d’utilisation de la commandeexprpour les opérations arithmétiques dans Bash.Comparaison de nombres dans des instructions conditionnelles
#!/bin/bash a=10 b=20 if ((a > b)); then echo "$a is greater than $b" elif ((a < b)); then echo "$a is less than $b" else echo "$a is equal to $b" fiCe script Bash montre comment utiliser des comparaisons arithmétiques au sein d’une structure conditionnelle if-elif-else pour comparer deux nombres. Le script commence par attribuer les valeurs 10 et 20 aux variables
aetb, respectivement, en utilisanta=10etb=20.L’instruction conditionnelle commence par
if ((a > b)) ; then. Cela vérifie siaest supérieur àb. Étant donné quea(10) n’est pas supérieur àb(20), cette condition est évaluée à faux et le script n’exécute pas la commandeecho « $a est supérieur à $b »à l’intérieur de ce bloc.Le script passe ensuite à
l’elif ((a < b)), puisà la partie. Cela vérifie siaest inférieur àb. Dans ce cas, la condition est vraie (puisque 10 est inférieur à 20), donc le script exécute la commandeecho « $a est inférieur à $b »,qui affiche « 10 est inférieur à 20 » à la console.Si
aavait été égal àb, ni les conditionssini la conditionelifn’auraient été remplies, et le script aurait exécuté le dernier blocelse, en imprimant « $a est égal à $b ».Le
fimarque la fin de l’instruction conditionnelle. Ce script illustre efficacement la logique conditionnelle et la comparaison arithmétique dans Bash.Boucle avec opérations arithmétiques
#!/bin/bash for ((i = 1; i <= 5; i++)); do echo "Number $i" doneCe script Bash illustre une boucle for qui effectue une itération à travers une séquence de nombres. La boucle est initialisée avec
for ((i=1 ; i <= 5 ; i++)) ;,oùiest défini pour commencer à 1, la conditioni <= 5garantit que la boucle continue tant queiest inférieur ou égal à 5, eti++incrémenteide 1 à chaque itération. À l’intérieur de la boucle, la commandeecho « Number $i »est exécutée, qui affiche la valeur actuelle deipréfixée par « Number ». La boucle itérera cinq fois, en imprimant « Numéro 1 », « Numéro 2 », ..., jusqu’à « Numéro 5 ». Après la cinquième itération, lorsqueidevient 6, la conditioni <= 5devient fausse, mettant fin à la boucle.Arithmétique à virgule flottante avec bc
#!/bin/bash a=10.5 b=5.2 sum=$(echo "$a + $b" | bc) echo "Sum: $sum"Ce script Bash calcule la somme de deux nombres à virgule flottante à l’aide de l’utilitaire
bc, qui est une calculatrice en ligne de commande capable d’effectuer des calculs arithmétiques avec des nombres décimaux. Le script commence par attribuer les valeurs 10,5 et 5,2 aux variablesaetb, respectivement, en utilisanta=10,5etb=5,2.L’opération clé est
sum=$ (echo « $a + $b » | bc).Cette ligne utiliseechopour envoyer l’expression « $a + $b » (qui se développe en « 10.5 + 5.2 ») à bc àtraversun tube|. Le programmebccalcule ensuite la somme de ces nombres. Le résultat de ce calcul est capturé et attribué à la variablesumvia la substitution de commande$ (...).Enfin, le script utilise
echo « Sum : $sum »pour imprimer le résultat. Il affiche la chaîne « Somme : » suivie de la valeur desomme, affichant effectivement « Somme : 15,7 » sur la console. Cet exemple illustre comment gérer l’arithmétique en virgule flottante dans Bash à l’aide de la commandebc.Calcul de la racine carrée
number=16 sqrt=$(echo "scale=2; sqrt($number)" | bc -l) echo "Square root of $number: $sqrt"Ce script Bash calcule la racine carrée d’un nombre à l’aide de l’utilitaire
bc, qui est une calculatrice en ligne de commande. Le script attribue la valeur 16 à la variablenumberavecnumber=16. L’opération clé,sqrt=$ (echo « scale=2 ; sqrt($number) » | bc -l),utiliseechopour envoyer la commandesqrt($number)(qui devientsqrt(16)) àbc, en spécifiant une échelle de 2 pour obtenir le résultat avec deux décimales. La commandebc -lappellebcavec la bibliothèque mathématique standard, qui est nécessaire pour la fonction racine carrée. La racine carrée calculée, 4,00, est ensuite stockée dans la variablesqrt. Enfin,echo « Racine carrée de $number : $sqrt »imprime le résultat, affichant « Racine carrée de 16 : 4.00 ».Logarithme népérien avec bc
#!/bin/bash number=7 ln=$(echo "l($number)" | bc -l) echo "Natural logarithm of $number: $ln"Ce script Bash calcule le logarithme népérien d’un nombre à l’aide de l’utilitaire
bc, qui est amélioré avec l’option-lpour inclure la bibliothèque mathématique standard nécessaire aux calculs logarithmiques. Le script commence par attribuer la valeur 7 à la variablenumberà l’aidenumber=7. L’opération clé,ln=$ (echo « l($number) » | bc -l), envoie la commandel($number)(qui devientl(7)) àbc. Cette commande calcule le logarithme népérien (base e) de 7.Le résultat de ce calcul est capturé et stocké dans la variable
lnà l’aide de la substitution de commande$ (...). Enfin, le script utilise echo« Logarithme népérien de $number : $ln »pour imprimer le résultat, affichant le logarithme népérien de 7, formaté sous la forme d’un nombre à virgule flottante.Gérer des nombres scientifiques avec awk
#!/bin/bash sum=$(awk 'BEGIN {print (1.23e2 + 3.45e3)}') echo "Sum: $sum"Ce script Bash calcule la somme de deux nombres en notation scientifique à l’aide de
awk, un puissant outil de traitement de texte et de calcul arithmétique. La commandesum=$ (awk 'BEGIN {print (1.23e2 + 3.45e3)}')utiliseawkpour effectuer l'ajout de1.23e2(qui est 1.23×1021.23×102, ou 123) et3. 45e3(qui est 3.45×1033.45×103, soit 3450).Le bloc
BEGINde la commandeawkgarantit que le calcul est effectué immédiatement, sans qu’il soit nécessaire de le saisir. Le résultat de cet ajout, 3573, est ensuite capturé et stocké dansla somme devariables via la substitution de commande$ (...). Enfin, le script renvoie ce résultat à l’aide deecho « Sum : $sum »,qui affiche la chaîne « Sum : " suivie de la valeur desum(3573 dans ce cas) à la console. Cet exemple montre commentawkpeut être utilisé pour les opérations arithmétiques, en particulier avec les nombres en notation scientifique.Calcul du nombre de lignes de fichier
#!/bin/bash file="example.txt" line_count=$(wc -l < "$file") echo "The file $file has $line_count lines."Ce script Bash compte le nombre de lignes d’un fichier et affiche le résultat. Le script définit le
fichiervariable sur le nom du fichier à traiter, « example.txt », en utilisantfile="example.txt ».Il utilise ensuite la commandeline_count=$ (wc -l < « $file »)pour compter les lignes.La commande
wc -lcompte le nombre de lignes dans le fichier, et la redirection< « $file »alimente le contenu du fichier danswc. Le résultat de ce nombre de lignes est stocké dans la variableline_count. Enfin, le script affiche le nombre de lignes à l’aide de echo« Le fichier $file a $line_count lines. »,affichant un message avec le nombre de lignes dans « example.txt ».Calcul de la surface
#!/bin/bash length=10 width=5 area=$((length * width)) echo "The area of the rectangle is ${area} square units"Ce script Bash calcule l’aire d’un rectangle et affiche le résultat. Le script attribue la valeur 10 à la
variable lengthet5 à width, représentant les dimensions du rectangle. La lignearea=$ ((longueur * largeur))effectue une opération arithmétique pour calculer l’aire en multipliant la longueur et la largeur, en stockant le résultat (50 dans ce cas) dansl’airevariable.Enfin, le script utilise
echo « L’aire du rectangle est $ {area} unités carrées »pour imprimer l’aire calculée. Ce message affiche « L’aire du rectangle est de 50 unités carrées », montrant effectivement le résultat de la multiplication comme l’aire du rectangle en unités carrées. Cet exemple illustre l’utilisation de base de l’arithmétique et des variables dans un scénario pratique dans Bash.Utilisation de let pour l’arithmétique
#!/bin/bash a=10 b=5 let sum=a+b echo "Sum: $sum"Ce script Bash calcule la somme de deux nombres à l’aide de la commande
let, une fonction intégrée pour les opérations arithmétiques. Le script définit les variablesaetbà 10 et 5, respectivement, aveca=10etb=5. La commandelet sum=a+beffectue ensuite l’addition deaetb, en attribuant le résultat (15) à la variablesomme. Enfin, le script utilisel’écho « Somme : $sum »pour imprimer la somme, en affichant « Somme : 15 » sur la console.
Conclusion
La maîtrise des opérations arithmétiques dans les scripts Bash ouvre un monde de possibilités pour l’automatisation des tâches et le traitement des données numériques. Que vous effectuiez des calculs simples ou des opérations complexes impliquant des nombres à virgule flottante et la notation scientifique, Bash fournit les outils et la flexibilité nécessaires à une création de scripts efficace. En incorporant ces exemples dans vos scripts, vous pouvez améliorer leur fonctionnalité et leur efficacité.
Foire aux questions : Principes fondamentaux de l’arithmétique Bash
- Qu’est-ce que le script Bash ? Le script Bash est une méthode permettant d’automatiser des tâches dans des systèmes d’exploitation de type Unix à l’aide du shell Bash.
- Comment effectuer des ajouts dans Bash ? Utilisez
sum=$ ((a + b))pour ajouter les variablesaetb. - Bash peut-il gérer l’arithmétique à virgule flottante ? Oui, en utilisant des outils externes comme
bcouawk. - À quoi sert la commande
expr? La commandeexpreffectue des opérations arithmétiques de base telles que l’addition et la multiplication. - Comment incrémenter une variable dans Bash ? Utilisez
((variable++))pour incrémenter la valeur d’une variable. - Que fait
$ ((expression))dans Bash ? Cette syntaxe effectue une expansion arithmétique avec l’expression donnée. - Comment calculer le module dans Bash ? Utilisez
module=$ ((a % b))pour calculer le module. - Est-il possible de calculer la puissance dans Bash ? Oui, utilisez
power=$ ((base**exponent))pour les calculs de puissance. - Comment puis-je comparer deux numéros dans Bash ? Utilisez des instructions conditionnelles comme
if ((a > b))à des fins de comparaison. - Bash peut-il effectuer des opérations de boucle avec l’arithmétique ? Oui, les boucles for peuvent incorporer des opérations arithmétiques, par exemple,
for ((i=1 ; i <= 5 ; i++)). - Comment calculer la racine carrée dans Bash ? Utilisez
sqrt=$ (echo « scale=2 ; sqrt($number) » | bc -l)avecbc. - Quel est le rôle de la commande
let? La commandeletest utilisée pour les affectations arithmétiques dans Bash. - Comment trouver le nombre de lignes dans un fichier ? Utilisez
line_count=$ (wc -l < « $file »)pour compter les lignes dans un fichier. - Comment calculer la superficie à Bash ? Utilisez
area=$ ((longueur * largeur))pour le calcul de la surface d’un rectangle. - Le script Bash peut-il gérer la notation scientifique ? Oui, à l'aide d'outils comme
awk, par exemple,awk 'BEGIN {print (1.23e2 + 3.45e3)}'.


















