Test de décimal Shell

zago2008 Messages postés 6 Statut Membre -  
 zago2008 -
salut

J'ai une valeur décimal attribuée à $media

media=`echo "scale=2; (($P1 + $P2 + $T1 + $T2 ) / 4) " | bc`

et j’essai de la tester comme ça

if [ `echo "scale=2; ($media >= 5) " | bc` ]
then
situation="Aprouvé"
else
situation="Reprouvé"
fi

mais ça ne marche pas...

Quelqu’un sait me dire pourquoi?

merci
A voir également:

5 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Tu essaies de tester quoi ?
Ta condition de test ([...]) ne teste rien ! il n'y a aucune condition pour le "if" !
0
zago2008 Messages postés 6 Statut Membre
 
salut

J’essais de tester si la valeur est supérieure ou égale à 5…

$media >= 5

Je ne peux pas utiliser le ‘if’ ?
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Si tu peux et tu dois utiliser le "if" mais pas comme ça.
A partir du moment où tu as défini ta variable "$media" c'est elle qu'il faut tester, de plus le test "plus grand ou égal" se définit de la sorte :
if [ "$media" -ge "5" ]; then ...
Par contre le shell ne peut comparer que des entiers et non des valeurs décimales ;-((
0
zago2008
 
D'accord

C'etait bien ça qui j'avais testé, mais ça n'avait pas marché...

Merci quand même
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zago2008
 
Voilà la solution qui j'ai trouvé

media=`echo "scale=2; (($P1 + $P2 + $T1 + $T2 ) / 4) " | bc`
echo $media > decimal
valor=`cat decimal | sed 's/\.//g'`
rm decimal

if [ $valor -ge 500 ]
then
situation="Aprouvé"
else
situation="Reprouvé"
fi

salut
0