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
Configuration: Windows 2000
Internet Explorer 6.0

5 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Tu essaies de tester quoi ?
    Ta condition de test ([...]) ne teste rien ! il n'y a aucune condition pour le "if" !
    0
  2. 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
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  4. zago2008
     
    D'accord

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

    Merci quand même
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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