Difference d'interpretation dans un "if"

Résolu
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Voilà, j'ai un code tout simple :
RATE=128
if (( RATE  >96 )) then echo OK;else echo NOK;fi

si je l'exécute directement dans une console, il fonctionne, mais si je le met dans un fichier "toto.sh" et que je le lance j'ai une erreur :
$ sh toto.sh
toto.sh: 21: toto.sh: 128: not found

J'en reste pentoi.

2 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
utiliser bash toto.sh, sh ne connait pas la syntaxe math. ((expr))
1
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Oui, c'est bien ça. le ';' manquant était juste une erreur de frappe.
Merci du renseignement.
A tout hasard, une alternative à (( )) en sh ?
0
manuel > Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention  
 
A tout hasard, une alternative à (( )) en sh ?
if [ "${RATE}" -gt 96 ]; then...
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
la commande expr
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
tout simplement utiliser test...
Merci.
0
manuel
 
Salut,

A tout hasard, il manque un ";" avant le
then
;-\

Chez moi ça marche :

$ RATE=128; if (( RATE > 96 ));then echo OK; else echo NOK;fi
OK

$ cat foo.sh
#! /bin/bash

RATE=128
if (( RATE > 96 ));then
echo OK
else echo NOK
fi

$ ./foo.sh
OK
0