salut,
J'ai merais savoir comment comparer 2 nombres décimaux en bash...
if [ ${variable1} > ${variable2} ]
crée un fichier variable2
if [ ${variable1} -ge ${variable2} ]
j'ai droit à un
integer expression expected
merci pour votre aide.
Cassy
salut,
J'ai merais savoir comment comparer 2 nombres décimaux en bash...
if [ ${variable1} > ${variable2} ]
crée un fichier variable2
if [ ${variable1} -ge ${variable2} ]
j'ai droit à un
integer expression expected
merci pour votre aide.
Cassy
A ma connaissance, Bash ne sait toujours pas gérer les nombres décimaux.
Tu peux utiliser ksh93 qui en est capable ou alors déléguer le test à bc, awk ou perl.
if [[ ${variable1} > ${variable2} ]] est la solution
et b'hein non même pas...
car 32.4 devient plus petit que 5.4
il doit faire une comparaison en string...
![]()
Il y a surement mieux, mais ceci devrait le faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if [ $(echo "$a - $b" | bc | tr -d .) -gt 0 ] then echo "$a >= $b" else echo "$a < $b" fi
Comme suggéré plus haut le mieux est de te tourner vers le shell korn, souvent beaucoup plus rapide du reste:
Attention au locales: 34.2 <> 34,2, c'est pourquoi j'ai forcé les locales à C.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #! /usr/bin/ksh LC_NUMERIC='C' if (( 34.2 > 2.5 )) then print "plus grand" fi
Partager