Introduction
La ligne de commande Linux offre des outils puissants pour effectuer des calculs arithmétiques. L'un des calculatrices les plus polyvalentes disponibles sous Linux est bc (Basic Calculator), qui permet aux utilisateurs d'effectuer des opérations mathématiques aussi bien simples que complexes directement depuis le terminal.
Dans ce labo (LabEx), vous apprendrez à utiliser la commande bc pour effectuer divers calculs arithmétiques sous Linux. Vous commencerez par les opérations de base et passerez progressivement aux expressions plus complexes. Les compétences que vous acquerrez seront utiles pour la création de scripts, le traitement de données et la résolution efficace de problèmes de calcul dans un environnement Linux.
À la fin de ce labo (LabEx), vous serez en mesure de :
- Effectuer des opérations arithmétiques de base en utilisant
bc - Gérer des expressions mathématiques complexes comportant plusieurs opérations
- Utiliser des variables et contrôler la précision des calculs
- Créer des scripts qui automatisent les calculs mathématiques
Commençons à explorer les capacités de la calculatrice bc de Linux.
Arithmétique de base avec bc
Dans cette étape, nous allons apprendre à utiliser la commande bc pour les opérations arithmétiques de base sous Linux. La commande bc est un outil de calculatrice puissant qui vous permet d'effectuer des calculs directement depuis le terminal.
Installation de bc
Tout d'abord, assurons-nous que la calculatrice bc est installée sur votre système :
sudo apt-get update
sudo apt-get install -y bc
Vous devriez voir un affichage indiquant le processus d'installation. Une fois installé, vous pouvez vérifier son bon fonctionnement en tapant :
bc --version
Vous devriez voir des informations sur la version de la calculatrice bc.
Création d'un script simple d'addition
Maintenant, créons un script simple pour effectuer une opération d'addition en utilisant bc :
- Accédez au répertoire du projet :
cd ~/project
- Créez un nouveau fichier de script nommé
simple_calc.sh:
touch simple_calc.sh
- Ouvrez le fichier avec l'éditeur nano :
nano simple_calc.sh
- Ajoutez le contenu suivant au fichier :
#!/bin/zsh
## Simple addition using bc
echo "20 + 5" | bc
Enregistrez le fichier en appuyant sur
Ctrl+O, puisEntrée, et quittez nano avecCtrl+X.Rendez le script exécutable :
chmod +x simple_calc.sh
- Exécutez le script :
./simple_calc.sh
Vous devriez voir le résultat suivant :
25
Cela montre comment bc prend l'expression "20 + 5" en entrée et produit le résultat 25.
Comprendre le fonctionnement de bc
La commande bc est une calculatrice orientée vers les pipelines. Nous utilisons le symbole de pipe (|) pour envoyer des expressions à bc pour évaluation. La syntaxe de base est :
echo "expression" | bc
Vous pouvez également tester d'autres opérations de base :
echo "10 - 3" | bc ## Soustraction
echo "4 * 6" | bc ## Multiplication
echo "15 / 3" | bc ## Division
Exécutez ces commandes dans votre terminal pour voir les résultats :
echo "10 - 3" | bc
echo "4 * 6" | bc
echo "15 / 3" | bc
Le résultat devrait être :
7
24
5
Calculs à virgule flottante avec bc
Dans cette étape, nous allons apprendre à effectuer des calculs à virgule flottante en utilisant la calculatrice bc. Par défaut, bc effectue des calculs arithmétiques entiers, mais nous pouvons utiliser le paramètre scale pour contrôler la précision décimale.
Comprendre le paramètre scale
Le paramètre scale dans bc détermine le nombre de décimales à utiliser dans les calculs. Voyons comment cela fonctionne :
- Essayez cette commande pour effectuer une division sans définir le paramètre
scale:
echo "5 / 2" | bc
Le résultat sera :
2
Notez que le résultat est tronqué à un entier, pas arrondi.
- Maintenant, définissons un paramètre
scalepour obtenir un résultat plus précis :
echo "scale=2; 5 / 2" | bc
Le résultat sera :
2.50
scale=2 indique à bc de calculer le résultat avec 2 décimales.
Création d'un script pour des calculs complexes
Créons un script qui démontre l'utilisation de scale et effectue des calculs plus complexes :
- Accédez au répertoire du projet si vous n'y êtes pas déjà :
cd ~/project
- Créez un nouveau fichier de script nommé
complex_calc.sh:
touch complex_calc.sh
- Ouvrez le fichier avec l'éditeur nano :
nano complex_calc.sh
- Ajoutez le contenu suivant au fichier :
#!/bin/zsh
## Complex calculation using bc with scale
result=$(echo "scale=2; (10.5 * 4.2) - (5.5 / 2) + 3^2" | bc)
echo "Result: $result"
Ce script :
- Définit le paramètre
scaleà 2 décimales - Effectue une multiplication : 10.5 * 4.2
- Effectue une division : 5.5 / 2
- Calcule une puissance : 3^2 (3 élevé à la puissance 2)
- Combine ces opérations avec des additions et des soustractions
- Stocke le résultat dans une variable nommée
result - Affiche le résultat avec une étiquette descriptive
Enregistrez le fichier en appuyant sur
Ctrl+O, puisEntrée, et quittez nano avecCtrl+X.Rendez le script exécutable :
chmod +x complex_calc.sh
- Exécutez le script :
./complex_calc.sh
Vous devriez voir un résultat similaire à :
Result: 46.35
Décortiquons le calcul :
- 10.5 * 4.2 = 44.1
- 5.5 / 2 = 2.75
- 3^2 = 9
- 44.1 - 2.75 + 9 = 50.35
Attendez, le résultat attendu devrait être 50.35, mais nous avons obtenu 46.35. C'est parce que le calcul dans le script doit être corrigé. Corrigeons-le :
nano complex_calc.sh
Mettez à jour le calcul :
#!/bin/zsh
## Complex calculation using bc with scale
result=$(echo "scale=2; (10.5 * 4.2) - (5.5 / 2) + 3^2" | bc)
echo "Result: $result"
## Breaking down the calculation
part1=$(echo "scale=2; 10.5 * 4.2" | bc)
part2=$(echo "scale=2; 5.5 / 2" | bc)
part3=$(echo "3^2" | bc)
echo "Part 1 (10.5 * 4.2): $part1"
echo "Part 2 (5.5 / 2): $part2"
echo "Part 3 (3^2): $part3"
echo "Final: $part1 - $part2 + $part3 = $(echo "scale=2; $part1 - $part2 + $part3" | bc)"
Enregistrez les modifications et exécutez le script à nouveau :
./complex_calc.sh
Ce script mis à jour affichera le détail de chaque partie du calcul, ce qui facilitera la compréhension de l'obtention du résultat final.
Utilisation des variables dans bc
Dans cette étape, nous allons apprendre à utiliser des variables dans bc pour rendre nos calculs plus flexibles et puissants. La calculatrice bc nous permet de définir des variables et de les réutiliser dans plusieurs calculs.
Utilisation de variables dans bc de manière interactive
Tout d'abord, explorons comment utiliser des variables directement en mode interactif de bc :
- Lancez la calculatrice
bcen mode interactif :
bc
- Définissez une variable et effectuez des calculs avec elle :
x = 10
x + 5
x * 2
Vous devriez voir :
15
20
- Vous pouvez définir plusieurs variables et les utiliser ensemble :
y = 7
x + y
x * y
Le résultat sera :
17
70
- Quittez le mode interactif en appuyant sur
Ctrl+Dou en tapantquit.
Création d'un script utilisant des variables bc
Maintenant, créons un script qui démontre l'utilisation de variables dans les calculs bc :
- Accédez au répertoire du projet si vous n'y êtes pas déjà :
cd ~/project
- Créez un nouveau fichier de script nommé
variable_calc.sh:
touch variable_calc.sh
- Ouvrez le fichier avec l'éditeur nano :
nano variable_calc.sh
- Ajoutez le contenu suivant au fichier :
#!/bin/zsh
## Script to demonstrate using variables in bc
## Define input values
radius=5
height=10
## Calculate cylinder volume (π * r² * h)
volume=$(echo "scale=2; 3.14159 * $radius * $radius * $height" | bc)
## Calculate cylinder surface area (2π * r² + 2π * r * h)
surface_area=$(echo "scale=2; 2 * 3.14159 * $radius * $radius + 2 * 3.14159 * $radius * $height" | bc)
## Display results
echo "Cylinder properties with radius $radius and height $height:"
echo "Volume: $volume cubic units"
echo "Surface Area: $surface_area square units"
Ce script :
- Définit des variables pour le rayon et la hauteur d'un cylindre
- Calcule le volume en utilisant la formule π r² h
- Calcule la surface en utilisant la formule 2π r² + 2π r * h
- Affiche les résultats avec les unités appropriées
Enregistrez le fichier en appuyant sur
Ctrl+O, puisEntrée, et quittez nano avecCtrl+X.Rendez le script exécutable :
chmod +x variable_calc.sh
- Exécutez le script :
./variable_calc.sh
Vous devriez voir un résultat similaire à :
Cylinder properties with radius 5 and height 10:
Volume: 785.39 cubic units
Surface Area: 471.23 square units
Utilisation de variables à l'intérieur de bc
Nous pouvons également définir et utiliser des variables entièrement à l'intérieur de bc en utilisant une approche multi-lignes. Créons un autre script pour démontrer cela :
- Créez un nouveau fichier :
nano bc_variables.sh
- Ajoutez le contenu suivant :
#!/bin/zsh
## Script to demonstrate using variables within bc
bc << EOF
scale=2
radius = 5
height = 10
pi = 3.14159
## Calculate cylinder volume
volume = pi * radius^2 * height
print "Volume: ", volume, " cubic units\n"
## Calculate cylinder surface area
surface_area = 2 * pi * radius^2 + 2 * pi * radius * height
print "Surface Area: ", surface_area, " square units\n"
EOF
Ce script :
- Utilise un "here document" (EOF) pour envoyer plusieurs lignes à
bc - Définit toutes les variables à l'intérieur de
bclui-même - Effectue des calculs en utilisant ces variables
- Utilise la commande
printdansbcpour afficher les résultats
- Enregistrez le fichier, rendez-le exécutable et exécutez-le :
chmod +x bc_variables.sh
./bc_variables.sh
Le résultat devrait être similaire au script précédent, mais il démontre une approche différente pour utiliser des variables avec bc.
Création d'un script de calculatrice pratique avec bc
Dans cette étape finale, nous allons créer un script de calculatrice plus pratique qui regroupe tous les concepts que nous avons appris. Ce script permettra aux utilisateurs d'effectuer diverses calculs en sélectionnant des options dans un menu.
Construction d'une calculatrice interactive
Créons un script qui fonctionne comme une calculatrice interactive :
- Accédez au répertoire du projet si vous n'y êtes pas déjà :
cd ~/project
- Créez un nouveau fichier de script nommé
calculator.sh:
touch calculator.sh
- Ouvrez le fichier avec l'éditeur nano :
nano calculator.sh
- Ajoutez le contenu suivant au fichier :
#!/bin/zsh
## Interactive calculator script using bc
## Function to calculate area of a circle
calculate_circle_area() {
echo -n "Enter the radius of the circle: "
read radius
area=$(echo "scale=2; 3.14159 * $radius * $radius" | bc)
echo "The area of the circle with radius $radius is: $area square units"
}
## Function to calculate area of a rectangle
calculate_rectangle_area() {
echo -n "Enter the length of the rectangle: "
read length
echo -n "Enter the width of the rectangle: "
read width
area=$(echo "scale=2; $length * $width" | bc)
echo "The area of the rectangle with length $length and width $width is: $area square units"
}
## Function to solve quadratic equation ax² + bx + c = 0
solve_quadratic() {
echo -n "Enter coefficient a: "
read a
echo -n "Enter coefficient b: "
read b
echo -n "Enter coefficient c: "
read c
## Calculate discriminant
discriminant=$(echo "scale=4; ($b * $b) - (4 * $a * $c)" | bc)
## Check the discriminant
if (($(echo "$discriminant < 0" | bc -l))); then
echo "The equation has no real solutions (discriminant < 0)"
elif (($(echo "$discriminant == 0" | bc -l))); then
## One solution
x=$(echo "scale=4; -$b / (2 * $a)" | bc)
echo "The equation has one solution: x = $x"
else
## Two solutions
x1=$(echo "scale=4; (-$b + sqrt($discriminant)) / (2 * $a)" | bc -l)
x2=$(echo "scale=4; (-$b - sqrt($discriminant)) / (2 * $a)" | bc -l)
echo "The equation has two solutions:"
echo "x1 = $x1"
echo "x2 = $x2"
fi
}
## Main program loop
while true; do
echo ""
echo "===== BC Calculator Menu ====="
echo "1. Calculate area of a circle"
echo "2. Calculate area of a rectangle"
echo "3. Solve quadratic equation (ax² + bx + c = 0)"
echo "4. Exit"
echo ""
echo -n "Enter your choice (1-4): "
read choice
case $choice in
1) calculate_circle_area ;;
2) calculate_rectangle_area ;;
3) solve_quadratic ;;
4)
echo "Exiting calculator. Goodbye!"
exit 0
;;
*) echo "Invalid option. Please try again." ;;
esac
done
Ce script :
- Définit des fonctions pour différents types de calculs
- Fournit une interface de menu pour que l'utilisateur puisse sélectionner le calcul souhaité
- Utilise
bcpour toutes les opérations mathématiques - Gère des formules mathématiques plus complexes comme l'équation quadratique
Enregistrez le fichier en appuyant sur
Ctrl+O, puisEntrée, et quittez nano avecCtrl+X.Rendez le script exécutable :
chmod +x calculator.sh
- Exécutez le script de calculatrice :
./calculator.sh
- Essayez chaque option du menu :
- Choisissez l'option 1 et entrez un rayon pour calculer l'aire d'un cercle
- Choisissez l'option 2 et entrez la longueur et la largeur pour calculer l'aire d'un rectangle
- Choisissez l'option 3 et entrez les coefficients pour résoudre une équation quadratique (essayez a=1, b=5, c=6)
- Choisissez l'option 4 pour quitter la calculatrice
Par exemple, si vous choisissez l'option 3 et entrez a=1, b=5, c=6, vous devriez voir un résultat similaire à :
The equation has two solutions:
x1 = -2.0000
x2 = -3.0000
Ce script interactif démontre comment bc peut être intégré dans des programmes plus complexes pour résoudre une variété de problèmes mathématiques.
Résumé
Dans ce laboratoire, vous avez appris à utiliser la calculatrice en ligne de commande bc sous Linux pour effectuer diverses opérations arithmétiques.
Voici un résumé de ce que vous avez accompli :
Opérations arithmétiques de base :
- Installation et vérification de la calculatrice
bc - Création d'un script simple pour effectuer des additions
- Apprentissage de l'utilisation de l'opérateur de canalisation (pipe) pour envoyer des expressions à
bc - Entraînement aux opérations de base telles que l'addition, la soustraction, la multiplication et la division
- Installation et vérification de la calculatrice
Calculs à virgule flottante :
- Utilisation du paramètre
scalepour contrôler la précision décimale - Création d'un script pour des calculs plus complexes impliquant plusieurs opérations
- Compréhension de l'ordre des opérations et de l'utilisation des parenthèses pour contrôler le flux des calculs
- Utilisation du paramètre
Utilisation de variables :
- Utilisation de variables shell dans les calculs
bc - Exploration du mode interactif de
bcpour définir et utiliser des variables - Création de scripts utilisant des variables pour des calculs plus flexibles
- Apprentissage de l'utilisation des "here documents" pour les opérations
bcmulti-lignes
- Utilisation de variables shell dans les calculs
Applications pratiques :
- Construction d'un script de calculatrice interactive avec une interface de menu
- Implémentation de calculs géométriques courants
- Résolution d'équations plus complexes telles que les formules quadratiques
- Combinaison de tous les concepts appris dans une application utile
Ces compétences vous permettent d'effectuer des opérations mathématiques efficacement dans la ligne de commande Linux et d'automatiser des calculs dans vos scripts. La calculatrice bc est un outil puissant qui peut gérer tout, des opérations arithmétiques simples aux formules mathématiques complexes, ce qui en fait une utilité essentielle pour les administrateurs système, les développeurs et les analystes de données travaillant dans un environnement Linux.
Au fur et à mesure que vous continuerez à travailler avec Linux, vous constaterez que la combinaison d'outils en ligne de commande comme bc avec la programmation shell peut vous aider à résoudre une grande variété de problèmes plus efficacement.



