Test de décimal Shell

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. Modérateur
    Salut,

    Tu essaies de tester quoi ?
    Ta condition de test ([...]) ne teste rien ! il n'y a aucune condition pour le "if" !
    1. salut

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

      $media >= 5

      Je ne peux pas utiliser le ‘if’ ?
      1. Modérateur
        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 ;-((
        1. D'accord

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

          Merci quand même
          1. 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