Opérations arithmétiques en Shell

ShellBeginner
Pratiquer maintenant

Introduction

Dans cet atelier, vous allez apprendre à effectuer des opérations arithmétiques de base en programmation Shell. Vous allez créer un script simple pour calculer le coût total d'un panier de fruits, illustrant ainsi l'utilisation des variables et des expressions arithmétiques dans Bash. Cet atelier est conçu pour les débutants, c'est pourquoi nous expliquerons chaque étape en détail.

Créer un nouveau script Bash

Commençons par créer un nouveau fichier de script Bash.

  1. Ouvrez votre terminal dans le WebIDE. Vous devriez voir une invite de commande qui ressemble à ceci : labex@ubuntu:~/project$.

  2. Nous allons créer notre script dans le répertoire project. Vous vous trouvez déjà dans ce répertoire par défaut, mais assurons-nous-en en utilisant la commande cd :

    cd ~/project

    Cette commande change le répertoire courant vers /home/labex/project.

  3. Maintenant, créons un nouveau fichier nommé fruit_basket.sh. Nous utiliserons la commande touch, qui crée un fichier vide :

    touch fruit_basket.sh
  4. Ouvrez le fichier fruit_basket.sh dans l'éditeur du WebIDE. Vous pouvez le faire en cliquant sur le nom du fichier dans l'explorateur de fichiers situé sur le côté gauche du WebIDE.

  5. Tout script Bash doit commencer par une ligne "shebang". Cette ligne indique au système quel interpréteur utiliser pour exécuter le script. Ajoutez la ligne suivante au début du fichier :

    #!/bin/bash

    Cette ligne précise que le script doit être exécuté avec l'interpréteur Bash.

Définir des variables pour le coût des fruits

Maintenant que nous avons notre fichier de script, définissons quelques variables pour stocker les coûts des différents fruits et du panier.

Ajoutez les lignes suivantes à votre fichier fruit_basket.sh :

#!/bin/bash

## Define costs
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1

Analysons cela :

  • En Bash, il n'est pas nécessaire de déclarer les variables avant de les utiliser. Il suffit d'assigner une valeur à un nom de variable.
  • Les noms de variables sont sensibles à la casse. Par convention, on utilise souvent des majuscules pour les constantes (valeurs qui ne changeront pas).
  • Il ne doit y avoir aucun espace autour du signe = lors de l'assignation des valeurs.
  • Ces valeurs représentent le coût en centimes. Par exemple, COST_PINEAPPLE=50 signifie qu'un ananas coûte 50 centimes.
  • Nous n'avons pas besoin de spécifier un type de données. Bash traite ces valeurs comme des chaînes de caractères par défaut, mais les manipulera comme des nombres lorsque nous effectuerons des opérations arithmétiques.

Calculer le coût total

Maintenant que nos coûts sont définis, calculons le coût total d'un panier de fruits contenant 1 ananas, 2 bananes et 3 pastèques.

Ajoutez la ligne suivante à votre fichier fruit_basket.sh :

#!/bin/bash

## Define costs
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1

## Calculate total cost
TOTAL=$((COST_PINEAPPLE + (COST_BANANA * 2) + (COST_WATERMELON * 3) + COST_BASKET))

Examinons cette nouvelle ligne :

  • $(( )) est la syntaxe de Bash pour les opérations arithmétiques. Tout ce qui se trouve à l'intérieur de ces doubles parenthèses est traité comme une expression arithmétique.
  • À l'intérieur de l'expression arithmétique, il n'est pas nécessaire d'utiliser le symbole $ devant les noms de variables.
  • Nous effectuons plusieurs opérations :
    • COST_PINEAPPLE : Le coût d'un ananas.
    • (COST_BANANA * 2) : Le coût de 2 bananes.
    • (COST_WATERMELON * 3) : Le coût de 3 pastèques.
    • COST_BASKET : Le coût du panier lui-même.
  • Toutes ces valeurs sont additionnées et le résultat est stocké dans la variable TOTAL.

Note : Bash ne gère que l'arithmétique sur les nombres entiers. Si nous devions manipuler des dollars et des centimes avec des virgules, nous devrions utiliser un outil comme bc pour l'arithmétique à virgule flottante.

Afficher le coût total

Pour voir le résultat de notre calcul, nous devons afficher le coût total. Ajoutez la ligne suivante à votre fichier fruit_basket.sh :

#!/bin/bash

## Define costs
COST_PINEAPPLE=50
COST_BANANA=4
COST_WATERMELON=23
COST_BASKET=1

## Calculate total cost
TOTAL=$((COST_PINEAPPLE + (COST_BANANA * 2) + (COST_WATERMELON * 3) + COST_BASKET))

## Display the total cost
echo "Total Cost is $TOTAL cents"

Analysons cette nouvelle ligne :

  • echo est une commande qui affiche du texte dans le terminal.
  • Le texte entre guillemets sera affiché tel quel, à l'exception de la partie $TOTAL.
  • Lorsqu'un nom de variable est précédé de $ à l'intérieur d'une chaîne de caractères, Bash le remplace par la valeur de la variable. C'est ce qu'on appelle l'expansion de variable.
  • Ainsi, si TOTAL vaut 128, la sortie sera "Total Cost is 128 cents".

Rendre le script exécutable et le lancer

Maintenant que notre script est terminé, nous devons le rendre exécutable puis le lancer.

  1. Dans le terminal, rendez le script exécutable avec la commande chmod :

    chmod +x ~/project/fruit_basket.sh

    Cette commande modifie le mode du fichier en ajoutant la permission d'exécution (x) pour l'utilisateur.

  2. Maintenant, lançons le script :

    ~/project/fruit_basket.sh

    Cette commande demande à Bash d'exécuter notre script. La partie ~/project/ spécifie le chemin d'accès à notre script.

Vous devriez voir un résultat similaire à celui-ci :

Total Cost is 128 cents

Ce résultat indique que le coût total de notre panier de fruits (1 ananas, 2 bananes, 3 pastèques et le panier lui-même) est de 128 centimes.

Résumé

Dans cet atelier, vous avez appris à effectuer des opérations arithmétiques en utilisant les opérateurs de base de la programmation Shell. Vous avez créé un script Bash qui calcule le coût total d'un panier de fruits en définissant des variables pour les coûts individuels et en utilisant des expressions arithmétiques pour calculer le total. Vous avez également appris à rendre un script exécutable et à le lancer depuis la ligne de commande.

Points clés à retenir :

  1. Les scripts Bash commencent par une ligne shebang (#!/bin/bash).
  2. En Bash, les variables sont assignées sans espaces autour du signe =.
  3. Les opérations arithmétiques en Bash s'effectuent à l'intérieur de $(( )).
  4. La commande echo est utilisée pour afficher des résultats.
  5. Les scripts doivent être rendus exécutables avec chmod +x avant de pouvoir être lancés.

Ces compétences constituent la base de tâches de scripting shell plus complexes et peuvent être appliquées à divers scénarios où vous devez effectuer des calculs au sein de vos scripts.