Test de décimal Shell

Fermé
zago2008 Messages postés 6 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 1 septembre 2010 - 1 août 2008 à 15:29
 zago2008 - 5 août 2008 à 10:28
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 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
1 août 2008 à 15:37
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 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 1 septembre 2010
1 août 2008 à 16:00
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 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
1 août 2008 à 16:47
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
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
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