System-Linux

Aller au contenu | Aller au menu | Aller à la recherche

Opération mathématique simple avec Bash.

Si dans les scripts bash vous avez besoin d'effectuer des opérations mathématique il existe une méthode très simple.

Une addition:

# echo $((7+4))
# 11

Une soustraction:

# echo $((8-2))
# 6

Une multiplication:

# echo $((4*7))
# 28

Une division:

# echo $((8/2))
# 4

Il est bien entendue possible d'effectuer ces opérations avec des variables comme par exmple:

# i=4
# echo $(($i/2))
# 2

Vous pouvez aussi utiliser les opérateurs logiques.

Il est aussi possible d'utiliser le mot clef "let" exemple:

Incrémentation:

# i=4
# let i++
# echo $i
# 5

Décrémentation:

# i=5
# let i--
# echo $i
# 4

Par RaX | le samedi, janvier 17 2009 23:30

Commentaires

1. Kévin Hinault

mardi, janvier 27 2009 | 10:06

Juste pour ceux qui chercherais une calculatrice en ligne de commande, il existe aussi la commande bc qui donne accès a un "prompt de calcul" mais aussi à l'utilisation des tubes :

$ echo 145/8*456 | bc -l
8265.00000000000000000000

(La commande dc existe aussi mais en notation polonaise ... ce qui est parfois déroutant)

2. simplman

mardi, février 10 2009 | 06:43

merci :)

3. GanGan

mardi, février 10 2009 | 11:15

de rien ;)

4. nathalie

vendredi, avril 3 2009 | 04:59

developez un peu plus votre raisonnement a part ca, 10/10

5. mouislouis

lundi, août 10 2009 | 01:03

merci pour ce topic, mais faut que les mentalites change!

6. papillondunord

jeudi, décembre 3 2009 | 02:51

Un blog est un journal personnel en effet mais surtout un lieu d'échange et de partage d'idees (tout comme je fais actuellement sur le sujet) Bref, Merci pour les tuyaux, c'est tres enrichissant.

7. Badour

jeudi, janvier 14 2010 | 16:18

Bonjour,
je viens de lire ce que vous avez mis mais à chaque fois vous utilisez echo et moi j'aurais besoin de mettre cette valeur dans une variable.
vous faites : echo "12*3.02" | bc -l
moi je voudrais faire c1= "$a1*$P1i" | bc -l
Pourriez-vous m'aider svp.

8. RaX

jeudi, janvier 14 2010 | 17:47

Bonsoir,

tu peux p-e utiliser cette forme:

X=`echo "12*3.02" | bc -l`

résultat:

echo $X

Tcho!

9. Badour

vendredi, janvier 15 2010 | 09:47

Nickel, c'était bien ça. J'y avais pensé un moment mais lorsque j'ai inséré ce caratère, tout est devenu violet alors je me suis dit, ça ne peut pas être ça car un echo et un bc violet c'est pas bon.
Comme quoi, ne pas toujours se fier aux couleurs ;)

Merci beaucoup !
A bientôt
Badour

10. florian

mardi, avril 6 2010 | 15:40

bonjour,

comment utiliser la méthode floor en bash svp ?