Programmation BASH

bc pour effectuer des opérations arithmétiques avancées dans BASH

bc pour effectuer des opérations arithmétiques avancées dans BASH
Basic Calculator, également connu sous le nom de 'bc', est un utilitaire de ligne de commande Linux utilisé pour effectuer des calculs avancés et de l'algèbre dans les scripts bash. Il fournit de nombreuses fonctions mathématiques différentes comme le sinus, le cosinus, la tangente, le logarithme naturel en bash. Bash ne peut pas effectuer d'opérations arithmétiques avancées, comme comparer des flottants ; c'est là que bc est utile. La commande 'bc' était précédée de 'dc' (Desk Calculator), un utilitaire UNIX. Dans ce tutoriel, nous utiliserons la commande 'bc' pour effectuer des opérations arithmétiques avancées.

Effectuer des opérations arithmétiques de base

Des opérations arithmétiques simples telles que l'addition, la soustraction, la division et la multiplication peuvent être effectuées à l'aide de la commande 'bc'. La syntaxe pour appliquer des opérateurs binaires simples dans bash à l'aide de la commande 'bc' est la suivante.

[email protected]:~$ echo " ” | avant JC

Dans cette section, nous utiliserons la commande 'bc' pour effectuer des opérations arithmétiques simples.

[email protégé] :~$ num1=2.35322 5
[email protégé] :~$ num2=1.223353
[email protected]:~$ echo "$num1+$num2" | avant JC
3.576578
[email protected]:~$ echo "$num1-$num2" | avant JC
1.129872
[email protected]:~$ echo "$num1*$num2" | avant JC
2.878824
[email protected]:~$ echo "$num1/$num2" | avant JC
1

Dans l'exemple ci-dessus, lors de l'exécution de la division, nous avons obtenu le résultat sans virgule décimale. Pour obtenir le résultat jusqu'à 'n' points décimaux, nous devons définir la valeur d'échelle sur 'n' comme indiqué dans l'exemple suivant.

[email protected]:~$ echo "scale=10; $num1/$num2” | avant JC
1.9235862420

Alternativement, nous pouvons utiliser le drapeau '-l' et la commande 'bc' pour obtenir une sortie décimale.

[email protected]:~$ echo "$num1/$num2" | bc -l
1.92358624207403750184

La commande 'bc' peut également être utilisée pour effectuer une division de module et calculer la puissance d'un nombre dans les scripts bash.

[email protected]:~$ echo "10%4" | avant JC
2
[email protected]:~$ echo "10^2" | avant JC
100

Exécution d'opérations arithmétiques avancées

Jusqu'à présent, nous avons utilisé la commande 'bc' pour effectuer certaines opérations arithmétiques de base telles que l'addition, la soustraction, la multiplication, etc., à présent; dans cette section, nous utiliserons la commande 'bc' pour effectuer des opérations arithmétiques avancées. Nous verrons comment utiliser les opérateurs de comparaison, les opérateurs logiques ou booléens, les fonctions mathématiques avancées et les instructions conditionnelles dans bash à l'aide de la commande 'bc'.

Opérateurs de comparaison

Les opérateurs de comparaison prennent deux nombres, les comparent puis renvoient 1 ou alors 0 selon la comparaison. Si la comparaison est vraie, alors le résultat est VRAI(1); sinon c'est FAUX(0). Voici quelques exemples d'opérateurs de comparaison.

  • num1 > num2 : Cette comparaison reviendra 1 si la nombre1 est supérieur à la nombre2.
  • nombre1 < num2: Le résultat sera 1 si la nombre1 est inférieur au nombre2.
  • nombre1 <= num2: Le résultat sera 1 si la nombre1 est inférieur ou égal à nombre2.
  • num1 >= num2 : Le résultat sera 1 si la nombre1 est supérieur ou égal à la nombre2.
  • num1 == num2 : Le résultat sera 1 si la nombre1 est égal à la nombre2.
  • nombre1 != num2 : Le résultat sera 1 si les deux nombres ne sont pas égaux.

Voici quelques exemples d'opérateurs de comparaison utilisés avec la commande 'bc'.

[email protected]:~$ echo "5==5" | avant JC
1
[email protected] :~$ echo "4!=4" | avant JC
0
[email protected]:~$ echo "2>5" | avant JC
0
[email protected] :~$ echo "4<=4” | bc
1

Opérateurs booléens

Les opérateurs booléens ou logiques sont utilisés dans les instructions conditionnelles pour effectuer certaines décisions logiques. Voici les trois opérateurs logiques de base.

  • stat1 && stat2 : Cela reviendra 1 si les deux déclarations sont non nul.
  • stat1 || stat2 : Cela reviendra 1 si l'une des déclarations est non nul.
  • ! statistique : Cela reviendra 1 si la déclaration est non nul et vice versa.

Les exemples suivants illustrent comment les opérateurs logiques sont utilisés avec la commande 'bc'.

[email protected]:~$ echo "-5 && 0" | avant JC
0
[email protected]:~$ echo "-1 || 0” | avant JC
1
[email protected]:~$ echo "! 0” | avant JC
1

Expressions conditionnelles

Les instructions conditionnelles sont utilisées pour exécuter des commandes spécifiques en fonction de la condition appliquée. La condition appliquée dans l'instruction conditionnelle implique des opérateurs logiques et de comparaison. Voici l'exemple d'instructions conditionnelles avec la commande 'bc'.

[email protégé] :~$ a=15
[email protégé] :~$ b=20
[email protected]:~$ echo ' if(a>b) print « a est plus grand » else print « b est plus grand » ' | bc -l
b est plus grand

Dans l'exemple ci-dessus, l'instruction vérifie si a est supérieur à b ou non. Si a est supérieur à b, il affichera « a est supérieur » ; sinon, il imprimera « b est plus grand.” Nous pouvons appliquer n'importe quelle condition en utilisant des opérateurs booléens et de comparaison dans l'exemple ci-dessus.

Fonctions mathématiques

La commande 'bc' fournit également des fonctions mathématiques intégrées que nous pouvons utiliser sans les définir. Voici quelques fonctions essentielles utilisées avec la commande 'bc' dans bash.

  • s(x): renvoie le sinus de x où x est en radians
  • c(x) : renvoie le cosinus de x où x est en radians
  • hache): renvoie l'arc tangente de x et le résultat est en radians
  • sqrt(x): renvoie la racine carrée de x. Cela provoque une erreur d'exécution lorsque x est négatif
  • l(x): renvoie le logarithme naturel de x.

Ces fonctions peuvent être utilisées avec la commande 'bc', comme illustré dans les exemples suivants.

[email protégé] :~$ pi=3.1415
[email protected]:~$ echo "s($pi/2)" | bc -l
1
[email protected]:~$ echo "c($pi/2)" | bc -l
0
[email protected]:~$ echo "a(1)" | bc -l
0.7854

La racine carrée d'un nombre peut être calculée en bash à l'aide de la commande 'bc', comme le montre la figure suivante.

[email protected]:~$ echo "sqrt(4)" | bc -l
2

En essayant de calculer la racine carrée d'un nombre négatif, le shell lancera une erreur d'exécution.

[email protected]:~$ echo "sqrt(-2)" | bc -l
Erreur d'exécution (func=(main), adr=4) : racine carrée d'un nombre négatif

Le logarithme naturel d'un nombre peut être calculé en bash en utilisant la commande 'bc' comme suit.

[email protected]:~$ echo "l(2)" | bc -l
.69314718055994530941

Conclusion

Lors de l'écriture de scripts d'automatisation dans bash, nous avons parfois besoin de fonctions mathématiques avancées et d'opérateurs logiques pour exécuter des commandes. La commande 'bc' fournit de nombreuses fonctions et opérateurs mathématiques avancés pour effectuer des calculs arithmétiques de haut niveau. Ce tutoriel a discuté de l'utilisation de la commande 'bc' pour effectuer des opérations arithmétiques avancées dans bash.

Comment afficher le compteur FPS dans les jeux Linux
Les jeux Linux ont reçu une impulsion majeure lorsque Valve a annoncé la prise en charge de Linux pour le client Steam et leurs jeux en 2012. Depuis l...
Comment télécharger et jouer à Civilization VI de Sid Meier sur Linux
Présentation du jeu Civilization 6 est une version moderne du concept classique introduit dans la série de jeux Age of Empires. L'idée était assez sim...
Comment installer et jouer à Doom sur Linux
Introduction à Doom La série Doom est née dans les années 90 après la sortie du Doom original. Ce fut un succès instantané et à partir de ce moment-là...