mauvais calcul

Le
gerard.pineau1
Bonjour,

je suis sous aix , en ksh et je n'arrive pas à faire reconnaitre le
nombre 100 pour les calculs :
exemple :

var=15.5
# if [[ $var > 100 ]];then echo 0;else echo 1 ;fi
0
faux !!

# if [[ $var < 10 ]];then echo 0;else echo 1 ;fi
1

vrai !!
il y a peut-être une variable system ??
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ALain Montfranc
Le #744500
a écrit
Bonjour,

je suis sous aix , en ksh et je n'arrive pas à faire reconnaitre le
nombre 100 pour les calculs :
exemple :

var.5
# if [[ $var > 100 ]];then echo 0;else echo 1 ;fi
0
faux !!

# if [[ $var < 10 ]];then echo 0;else echo 1 ;fi
1

vrai !!
il y a peut-être une variable system ??


AMHA ca ne marche qu'avec des entiers...

Kartochka
Le #744499
essaie ça pour voire :

var.5

if [[ "(($var-100))" > "0" ]]
then
echo 0
else
echo 1
fi
Stephane Chazelas
Le #730391
2007-03-6, 01:00(-08), :
Bonjour,

je suis sous aix , en ksh et je n'arrive pas à faire reconnaitre le
nombre 100 pour les calculs :
exemple :

var.5
# if [[ $var > 100 ]];then echo 0;else echo 1 ;fi
0
faux !!

# if [[ $var < 10 ]];then echo 0;else echo 1 ;fi
1

vrai !!
il y a peut-être une variable system ??


D'abord, c'est

[ "$var" -gt 100 ]

[[ $var -gt 100 ]]

ou (( var > 100 ))

et seuls zsh et ksh93 supportent les floats.

Un shell n'est pas un outil pour faire de l'arithmetique.

--
Stéphane

David
Le #730390
Le Tue, 06 Mar 2007 01:00:34 -0800, a écrit :

Bonjour,

je suis sous aix , en ksh et je n'arrive pas à faire reconnaitre le
nombre 100 pour les calculs :
exemple :

var.5
# if [[ $var > 100 ]];then echo 0;else echo 1 ;fi 0
faux !!

# if [[ $var < 10 ]];then echo 0;else echo 1 ;fi 1

vrai !!
il y a peut-être une variable system ??



Si tu as bc sur ton aix et c'est récupérable sur le net sinon :

if echo "($var > 100)" | bc -q > /dev/null 2>&1
then echo ok
else echo ko
fi

le shell ne gère par les nombres a virgule.
Donc soit tu t'en sors en supprimant la virgule (ie tu multiplies tout par
100) soit tu fait autrement.
Enfin, > se traduit par -gt avec test

Publicité
Poster une réponse
Anonyme