Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1763 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Comparer des floats (script bash)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comparer des floats (script bash)

n°1442917
doum
Mentalita nissarda
Posté le 15-09-2006 à 11:15:57  profilanswer
 

Bonjour,
 
je suis entrain de coder un petit script de monitoring big Brother d'un serveur VMWARE ESX.
J'essaye de comparer deux valeurs, mais une est un float et l'autre un entier.
 
Probleme j'ai ce message d'erreur :
 

bb-cpu.sh: [: 72.0446: integer expression expected


 
Y'a-t-il un moyen de comparer deux nombres sans se soucier que l'un soit un float?
 
La partie du code qui pose probleme :
 

Code :
  1. if [ "$CPU" -ge 95 ]
  2. then
  3.         CPUCOLOR="&red"
  4.         COLOR="red"
  5. else
  6.         if [ "$CPU" -ge 90 ]
  7.         then
  8.                 CPUCOLOR="&yellow"
  9.                 COLOR="yellow"
  10.         fi
  11. fi


$CPU contient par exemple le 72.0446 du dessus
 
Merci de votre aide


Message édité par doum le 15-09-2006 à 11:17:15
mood
Publicité
Posté le 15-09-2006 à 11:15:57  profilanswer
 

n°1442921
Elmoricq
Modérateur
Posté le 15-09-2006 à 11:18:09  profilanswer
 

edit : ah mince, bash, j'suis en ksh... j'reviens.
 
edit 2 : bon, je trouve rien de mieux que de feinter en tronquant :

export taiste=95.125
 
if [ ${taiste//\.*/} -ge 95 ]
then
   ...
fi


Message édité par Elmoricq le 15-09-2006 à 11:36:33
n°1442931
doum
Mentalita nissarda
Posté le 15-09-2006 à 11:30:15  profilanswer
 

;)
 
EDIT: pourrais-tu m'expliquer ce que fais le ${taiste//\.+/}


Message édité par doum le 15-09-2006 à 11:30:52
n°1442932
Elmoricq
Modérateur
Posté le 15-09-2006 à 11:34:41  profilanswer
 

Ca efface tout caractère "." (point) et sa suite dans la variable $taiste.
Un sed à la volée, quoi. La valeur de la variable reste évidemment inchangée.
 
edit : y a une erreur dans ce que j'ai mis. Il faut utiliser "*" et non "+", c'est un PERL-isme, je corrige mes posts.
 
Exemple :

bash-2.03$ export taiste=95.125
bash-2.03$ echo ${taiste//\.*/}
95
bash-2.03$ echo $taiste
95.125
bash-2.03$  


Message édité par Elmoricq le 15-09-2006 à 11:38:29
n°1442951
doum
Mentalita nissarda
Posté le 15-09-2006 à 12:03:04  profilanswer
 

Merci beaucoup ca marche.
 
J'avais pensé a tronqué la variable mais j'avais un peu zappé comment faire...en plus je l'avais deja utilisé cette methode "en live" y'a 1 an ou deux il me semble


Message édité par doum le 15-09-2006 à 12:03:44

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Comparer des floats (script bash)

 

Sujets relatifs
[Résolu] Mon script d'ouverture de pop-up ne doit pas être bon ![JAVA]trier un tableau sans comparable ni compareTo
Comment faire une pause dans un script ?script permission d acces
Evaluation d'un script recupéré depuis le onclickComparer les dates presentes ds un fichier a la date courante
[bash] Heure en timestamp[PHP] bug dans un script d'inscription
pb script kshDBD::Mysql DBI CGI vs Script
Plus de sujets relatifs à : Comparer des floats (script bash)


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)