Administrateur Linux - Opérations mathématiques de base

Bash fait des calculs entiers en utilisant les opérateurs communs pour l'addition, la soustraction, la multiplication et la division.

+ Une addition
- Soustraction
* Multiplication
/ division
% Module
<< Incrément
- Décrémenter

Lors de l'exécution d'opérations mathématiques, il est nécessaire d'utiliser le format $ ((formule mathématique))

Note - Lors de l'utilisation $() BASH, il exécutera une commande. echo $(ls)imprimera la sortie de ls sur le terminal. Ajout d'unnest () informera BASH des opérations mathématiques à effectuer.

Dans le code suivant, nous utilisons l'opérateur de pré-incrémentation pour incrémenter à mesure qu'il est imprimé sur le terminal.

#!/bin/bash  
for i in `seq 0 10`; 
   do 
   echo $((++i)) 
done

Voici la sortie.

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11

Plus d'opérations mathématiques de base -

#!/bin/bash 
echo $((2+1)) 
echo $((2-1)) 
echo $((2*1)) 
echo $((2/1)) 
echo $((2%1))

Voici la sortie.

3 
1 
2 
2
0

Effectuer des opérations mathématiques sur des entiers est assez simple dans BASH. Le développeur a juste besoin de se rappeler que les opérations sur les entiers sont toujours effectuées dans $ (()), indiquant à BASH qu'il s'agit de mathématiques.

Pour les nombres à virgule flottante, nous voulons utiliser la commande bc -

#!/bin/bash
echo 1.1+2.3 | bc

Voici la sortie.

3.4

bc peut devenir assez complexe mais est en même temps une calculatrice de ligne de commande très puissante.

Voici la page de manuel de bc -

bc est un langage qui prend en charge les nombres de précision arbitraires avec une exécution interactive d'instructions. Il y a quelques similitudes dans la syntaxe avec le langage de programmation C. Une bibliothèque mathématique standard est disponible via l'option de ligne de commande. Si nécessaire, la bibliothèque mathématique est définie avant de traiter les fichiers. bc commence par traiter le code de tous les fichiers répertoriés sur la ligne de commande dans l'ordre indiqué. Une fois que tous les fichiers ont été traités, bc lit à partir de l'entrée standard. Le code entier est exécuté au fur et à mesure de sa lecture. (Si un fichier contient une commande pour arrêter le processeur, bc ne lira jamais à partir de l'entrée standard.)

Cette version de bc contient plusieurs extensions au-delà des implémentations traditionnelles de bc et du projet de norme POSIX. Les options de ligne de commande peuvent entraîner l'affichage d'un avertissement ou le rejet de ces extensions. Ce document décrit la langue acceptée par ce processeur. Les extensions seront identifiées comme telles.

N'oubliez pas que l'utilisation de bc est préférable avec les opérations en virgule flottante et que le shell peut gérer les nombres entiers. Vous devrez passer vos opérandes à bc . Enfin, le paramètre scale spécifie la précision de la solution.

#!/bin/bash 
echo 'scale = 3; 1.19*2.3' | bc -q

Voici la sortie.

2.737