Variable / Comparaison / Condition

Variable / Comparaison / Condition - Shell/Batch - Programmation

Marsh Posté le 17-02-2010 à 11:56:11    

Bonjour,
 
Après recherche sur google et sur le forum concernant les variables d'environnement et les valeurs numériques je n'ai pas trouvé la réponse que je cherchais.
 
Sous Unix, dans un script (shell), j'aimerai comparer la valeur d'une variable :
 
si $variable supérieur ou égal à 28
alors ....
fin de si
 
Je ne sais pas si je dois mettre "" ou '' ou `` pour $variable et pour 28
 
A l'origine j'avais fais ceci :

Code :
  1. if ["$variable" > "28" ]


Mais ça me renvoie l'erreur suivante : nomduscript[8]: 17:  introuvable.
Où 17 est contenu dans la variable, sachant qu'il représente le "nombre" du jour qui est extrait de la date avec awk
 
Une idée ?
Jusqu'à présent mes comparaisons concernaient du texte donc j'utilisais "" avec le si


---------------
¤ JOE BAR TEAM ¤
Reply

Marsh Posté le 17-02-2010 à 11:56:11   

Reply

Marsh Posté le 17-02-2010 à 13:51:13    

Ca dépend avec quel shell.
 
Une syntaxe qui marche souvent est :  

if [ $variable -gt 28 ]
then
 ...
fi


N.B. gt signifie greater than. on peut mettre -ge (greater or equal), -lt (less than), -le (less or equal), -eq (equal).


Message édité par olivthill le 17-02-2010 à 13:53:31
Reply

Marsh Posté le 17-02-2010 à 16:35:28    

à noter qu'il faut faire gaffe à bien mettre un espace après le crochet ouvrant et avant le crochet fermant... sinon ca ne marche pas.

Reply

Marsh Posté le 18-02-2010 à 09:54:28    

Je vais essayer cela tout à l'heure, merci olivthill et pataluc pour votre aide. J'espère que cela fonctionnera.


---------------
¤ JOE BAR TEAM ¤
Reply

Marsh Posté le 18-02-2010 à 15:27:13    

Cela fonctionne !
Oui les espaces entre crochets semblent très importants. Et les signes > = == < <= etc... ne semblent pas bien "fonctionner" mais avec "gt" ça fonctionne. Merci encore

Message cité 1 fois
Message édité par tony-974 le 18-02-2010 à 15:27:35

---------------
¤ JOE BAR TEAM ¤
Reply

Marsh Posté le 24-02-2010 à 11:04:22    

tony-974 a écrit :

Cela fonctionne !
Oui les espaces entre crochets semblent très importants. Et les signes > = == < <= etc... ne semblent pas bien "fonctionner" mais avec "gt" ça fonctionne. Merci encore


 
Pour de plus amples détails, voici un bon tour d'horizon des tests sous Ninix.
 
Car franchement, si y a bien un truc sur lequel je me prends le chou régulièrement c'est comment on fait ces foutus tests (quoi quoi mémoire de poisson rouge  :ouch: )
 
 :bounce: Liste des tests sous Unix  :bounce:


---------------
En programmation, quand t'as un problème et qu'il n'y a que deux solutions valides, seule la troisième fonctionne !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed