Arithmétique fottante en shell

Jeremy Monnet jmonnet at gmail.com
Fri Feb 9 07:35:01 CET 2007


Bonjour,

Pour faire suite au mail de Bruno, je transmets une question d'un
collègue (ou plutot une prise de gueule qu'on a eu)

Contexte : dans un script shell solaris/ksh, le monsieur récupére
l'occupation des SAN, et ensuite vérifie si l'occupation de chaque
parcelle est bien en dessous des limites proposées à l'utilisateur.

Il génére lui-même la valeur "occupation d'une parcelle" sous la forme
"34.76" (a partir du résultat d'une commande fourni par l'éditeur
probablement), et compare celà à un seuil (mettons "90") avec quelque
chose comme :
[ 34.79 -lt 90 ] && echo ok

Voilà, ca marche bien en ksh sous solaris. Ca ne marche pas en bash,
ni en ksh sous solaris.
Je lui ai conseillé de ne pas utilisé d'arithmétique flottante en
shell et d'utiliser :
a=34.79
[ ${a%%.*} -lt 90 ] && echo ok
Pour enlever la virgule et ce qu'il y a après.

Comment feriez-vous autrement/plus proprement ? Est-ce qu'il est
possible de travailler sérieusement avec des flottants en shell (et
que ce soit portable) ?

Zsh not accepted : c'est déjà assez compliqué pour ce monsieur de
comprendre "son" shell, ksh. ;-)

Merci,

Jeremy
-- 
Linux Registered User #317862
Linux From Scratch Registered User #16571
Please do not send me .doc, .xls, .ppt, as I will *NOT* read them.
Please send me only open formats, as OpenDocument or pdf.


More information about the Shell mailing list