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. 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
    1. D'accord

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

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

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