Opération arithmétique bash

Opération arithmétique bash
Faire des opérations arithmétiques en bash n'est pas similaire à d'autres langages de programmation standard. L'une des limites de Bash est qu'il ne peut pas gérer le point flottant ou les nombres doubles comme d'autres langages de script. Un autre outil de commande est utilisé dans Bash pour résoudre ce problème. Différents types d'opérations arithmétiques sont présentés dans ce tutoriel en utilisant différents exemples.

Exemple - 1: Utilisation de la commande 'expr'

La commande la plus ancienne pour effectuer des opérations arithmétiques dans Bash est 'expr'. Cette commande peut fonctionner uniquement avec des valeurs entières et imprime la sortie directement dans le terminal. Vous devez utiliser l'espace avec chaque opérande lorsque vous souhaitez utiliser le 'expr«Commande pour faire des opérations mathématiques. Créer un fichier bash nommé expr.frapper avec le script suivant pour connaître l'utilisation de 'expr' commande.

#!/ bac / bash
# Fonctionne comme la chaîne
expr '10 + 30 '
# Fonctionne comme la chaîne
Expr 10 + 30
#Perform l'ajout
Expr 10 + 30
#FINIDE la valeur reste
Expr 30% 9
#Using expr avec backtick
myVal1 = 'expr 30/10'
echo $ myval1
#Using expr dans le substitut de commande
myVal2 = $ (expr 30 - 10)
echo $ myval2

Exécutez la commande suivante pour exécuter le script.

$ bash expr.frapper

Sortir:
La sortie montre que les opérateurs arithmétiques ne fonctionnaient que lorsque l'espace est utilisé avec chaque valeur numérique et qu'aucune citation unique n'est utilisée avec l'expr commande. Vous pouvez également attribuer la sortie du expr commander dans une variable et imprimer la variable plus tard en utilisant se retirer ou substitut de commande. 30/10 est calculé en utilisant se retirer et 30-10 est calculé en utilisant substitut de commande.

Exemple - 2: Utilisation de la commande 'let'

'laisser' est une autre commande intégrée pour effectuer des opérations arithmétiques en bash. 'laisser' La commande ne peut pas imprimer la sortie sur le terminal sans stocker la valeur dans une variable. Mais Le «laisse» La commande peut être utilisée pour supprimer les autres limitations du 'expr' commande. Créer un fichier bash nommé laisser.frapper avec le script suivant pour connaître l'utilisation du 'laisser' commande.

#!/ bac / bash
# Multiplier 9 par 8
Soit Val1 = 9 * 3
Echo Val1
# Divisant 8 par 3
Soit "Val2 = 8/3"
Echo Val2
# Soustraire 3 de 9
Soit Val3 = 9-3
Echo Val3
# Application de l'incrément
Soit Val4 = 7
Laissez Val4++
Echo Val4
# Utilisation de la valeur de l'argument dans le fonctionnement de l'arithmétique
Soit "Val5 = 50 + 1 $"
écho à Val5

Exécutez la commande suivante pour exécuter le script.

$ bash let.bash 50

Sortir:

La sortie montre que Le «laisse» La commande est plus flexible que le 'expr' commande. Vous pouvez évaluer toute expression arithmétique avec ou sans citations. Mais vous ne pouvez pas utiliser d'espace dans une expression mathématique. L'opérateur d'incrément ou de décrémentation peut être utilisé dans le 'laisser' commande. Comment l'opération arithmétique peut être effectuée avec les valeurs d'argument en utilisant le 'laisser'La commande est affichée dans la dernière partie de l'exemple.

Exemple - 3: Utilisation de doubles supports

Toute opération arithmétique peut être effectuée en bash sans utiliser de commande. Ici, des supports doubles sont utilisés pour effectuer les tâches arithmétiques, et l'utilisation de doubles supports pour exécuter des expressions mathématiques est plus flexible que la commande comme la 'expr' ou 'laisser'. Créer un fichier bash nommé DBL.Bash avec le script suivant pour tester les opérations arithmétiques en utilisant des supports doubles.

#!/ bac / bash
# Calculez l'expression mathématique
val1 = $ ((10 * 5 + 15))
Echo Val1
# Utilisation du post ou de l'opérateur pré-incrément / décrément
((Val1 ++))
Echo Val1
val2 = 41
((--val2))
Echo Val2
# Utilisation de l'opérateur de raccourci
((Val2 + = 60))
Echo Val2
# Divisant 40 par 6
((Val3 = 40/6))
Echo Val3

Exécutez la commande suivante pour exécuter le script.

$ bash dbl.frapper

Sortir:

La sortie montre que les doubles crochets peuvent exécuter n'importe quelle expression mathématique avec l'espace ou sans espace et vous pouvez également utiliser des opérateurs d'incrément / décrément et de raccourci dans les expressions à double support.

Exemple - 4: Utilisation de la commande «BC» pour le flotteur ou les nombres doubles

L'une des principales limites des façons ci-dessus de faire des opérations arithmétiques dans Bash est que 'expr' ou 'laisser' ou supports doubles Les expressions ne sont pas en mesure de produire des nombres à virgule flottante ou doubles. La production des opérations de division des exemples ci-dessus est des entiers. 'avant JC'La commande peut être utilisée pour résoudre ce problème et il fonctionne comme une calculatrice de base pour le système d'exploitation Linux. Créer un fichier bash nommé avant JC.frapper avec le script suivant pour connaître l'utilisation de le «Colombie-Britannique» Commande dans les opérations arithmétiques.

#!/ bac / bash
# Divisant 55 par 3 avec BC uniquement
Echo "55/3" | avant JC
# Diviser 55 par 3 avec l'option BC et -L
Echo "55/3" | BC -L
# Divisant 55 par 3 avec BC et valeur d'échelle
Echo "échelle = 2; 55/3" | avant JC

Exécutez la commande suivante pour exécuter le script.

$ bash bc.frapper

Sortir:
La sortie montre que le simple 'avant JC'La commande produit une valeur entière comme d'autres options lorsqu'une expression de division est exécutée. 'BC -L'La commande génère la sortie exacte de la division et vous pouvez limiter la partie fractionnaire en utilisant escalader valeur. Ici, échelle = 2 est utilisé. La sortie montre donc 2 chiffres après le point décimal.

Exemple-5: Utilisation de la commande printf pour le flotteur ou le double numéro

Le 'printfLa commande est une autre façon de travailler avec des données fractionnées. Cette commande peut être utilisée pour générer la valeur du point flottante plus efficacement que la commande «BC» après l'opération arithmétique. Cette commande peut également être utilisée pour calculer la puissance d'un nombre. Les utilisations du 'printf'La commande pour différentes opérations arithmétiques s'est montrée dans cet exemple. Créer un fichier bash nommé PRN.frapper avec le script suivant pour vérifier l'utilisation de la commande 'printf' pour la sortie fractionnaire de la division de deux nombres.

#!/ bac / bash
# Prenez la valeur de dividende de l'utilisateur
lire -p "Entrez la valeur du dividende:" N1
# Prenez la valeur du diviseur de l'utilisateur
lire -p "Entrez la valeur du diviseur:" n2
# Trouvez la division en utilisant «Echo» et «BC»
Echo "échelle = 2; $ n1 / $ n2" | BC
# Trouvez la division en utilisant 'printf'
printf "%.2f \ n "" $ ((10 ** 2 * $ n1 / $ n2)) e-2 "

Exécutez la commande suivante pour exécuter le script.

$ bash prn.frapper

Sortir:
La sortie suivante montre que la valeur de division générée par les commandes «BC» et «printf» de deux numéros entiers est la même.

La sortie suivante montre que lorsque la valeur de dividende est un nombre de points flottants, la valeur de division générée par la commande 'BC' est correcte mais la commande 'printf' a généré une erreur.

Créer un fichier bash nommé prn2.frapper avec le script suivant pour connaître l'utilisation de la commande 'printf' pour la sortie fractionnaire correcte lorsque la valeur de dividende est un numéro à point flottante.

#!/ bac / bash
# Prenez la valeur de dividende de l'utilisateur
lire -p "Entrez la valeur du dividende:" N1
# Prenez la valeur du diviseur de l'utilisateur
lire -p "Entrez la valeur du diviseur:" n2
# Trouvez la division en utilisant «printf», «echo» et «BC»
printf "%.2f \ n "'echo $ n1 / $ n2 | bc -l'

Exécutez la commande suivante pour exécuter le script.

$ bash prn2.frapper

Sortir:
La sortie montre que la commande 'printf' avec "BC 'génère la sortie correcte.

Exemple-6: Utilisation de la commande awk pour l'opération arithmétique

L'utilisation de la commande 'awk' est une autre façon d'effectuer l'opération arithmétique qui peut générer correctement la sortie pour les nombres à virgule flottante. Les opérations arithmétiques utilisant la commande 'awk' 'sans formatage et avec la mise en forme se sont montrées dans cet exemple. Créer un fichier bash nommé awk.frapper avec le script suivant pour vérifier l'utilisation de la commande 'awk' pour l'opération arithmétique.

#!/ bac / bash
# Initialiser la valeur de dividende
n1 = 90
# Initialiser la valeur du diviseur
n2 = 43
# Imprimez la sortie sans former
awk "begin print $ n1 / $ n2"
# Imprimez la sortie avec formatage
awk "begin printf"%.2f \ n ", $ n1 / $ n2"

Exécutez la commande suivante pour exécuter le script.

$ bash awk.frapper

Sortir:
La sortie montre que la commande 'awk' peut générer une sortie fractionnaire appropriée.

Exemple-7: calculer le pourcentage d'une valeur

Parfois, nous devons calculer la valeur en pourcentage de critères particuliers. Le pourcentage peut être calculé en bash en utilisant la commande «printf» et la commande «echo». Supposons que nous devons découvrir le pourcentage d'étudiants passés lors d'un examen en fonction du nombre total d'étudiants et des étudiants totaux adoptés. La solution à ce problème s'est montrée dans cet exemple. Créez un fichier bash avec le script suivant pour calculer la valeur en pourcentage des étudiants passés à l'aide de la commande 'printf'.

#!/ bac / bash
# Prenez le nombre total d'étudiants de l'utilisateur
lire -p "Nombre total d'étudiants:" Total_std
# Prenez le nombre total d'étudiants adoptés de l'utilisateur
Lire -P "Nombre total d'étudiants passés:" PAST_STD
# Calculez le pourcentage d'étudiants adoptés
printf "Le pourcentage d'étudiants passés:%.2f %% \ n "" $ ((10 ** 3 * 100 * $ pass_std / $ total_std)) e-3 "

Exécutez la commande suivante pour exécuter le script.

pourcentage de bash.frapper

Sortir:
La production montre le pourcentage d'étudiants qui passent en fonction du nombre total d'étudiants et d'étudiants passés.

Conclusion

Les utilisations de différents opérateurs arithmétiques dans Bash et les moyens d'effectuer les opérations arithmétiques à l'aide de différentes commandes se sont montrées dans ce tutoriel en utilisant plusieurs exemples pour aider les utilisateurs de bash.