Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/01/2012, à 11:28

lann

Test de nombre à virgule en bash

Bonjour

J'utilise quelquefois bash pour faire des tâches répétitives.
Donc je ne connais pas bien ce langage de programmation.

Dans un script j'aurais besoin d'utiliser des nombres à virgule.
J'ai compris que pour les calculs il fallait utiliser bc.

Mais pour un test sur deux nombres à virgule (dans une boucle While), je n'y arrive pas.
Comment le mettre en oeuvre.

Un exemple simple me conviendrait

Merci

Hors ligne

#2 Le 28/01/2012, à 12:05

pingouinux

Re : Test de nombre à virgule en bash

Bonjour,
Pour faire des opérations sur les nombres flottants, il faut utiliser :

bc -l

Le mieux serait que tu montres un exemple de ce que tu veux faire et qui ne marche pas.

Hors ligne

#3 Le 28/01/2012, à 12:32

lann

Re : Test de nombre à virgule en bash

Donc mes variables :

lat_sup=48.79872
lat_inf=47.65336
pas_025=0.000134989

l'opération d'ajout

lat_inf_cours=$(echo "$lat_sup_cours-$pas_025" | bc -l)

qui ne me met pas d'erreurs

et le test dans la boucle while, qui ne fonctionne pas:

while $lat_sup_cours > $lat_inf
do

......

done

Merci

Hors ligne

#4 Le 28/01/2012, à 12:40

pingouinux

Re : Test de nombre à virgule en bash

Peut-être pas le plus simple, mais je pense que ceci devrait convenir :

while [ $(bc -l <<<$(echo "$lat_sup_cours > $lat_inf")) = 1 ]
do

Corrigé suite à la remarque de Bousky #7 :

while [ $(bc -l <<<"$lat_sup_cours > $lat_inf") = 1 ]
do

Dernière modification par pingouinux (Le 28/01/2012, à 15:25)

Hors ligne

#5 Le 28/01/2012, à 12:52

lann

Re : Test de nombre à virgule en bash

Un grand merci pour cette réponse rapide qui à l'air de très bien fonctionner

Un débutant en bash qui ne comprends pas les subtilités smile

C++ c'est plus facile

Hors ligne

#6 Le 28/01/2012, à 12:56

pingouinux

Re : Test de nombre à virgule en bash

Il serait préférable, dans la mesure du possible, d'appeler bc une seule fois et d'y effectuer la boucle complète.

Hors ligne

#7 Le 28/01/2012, à 15:03

Bousky

Re : Test de nombre à virgule en bash

pingouinux a écrit :
… <<<$(echo "…") …

Ça ne sert à rien (si ce n'est à compliquer le code et à consommer plus de ressources). Il suffit de mettre

… <<< "…" …

Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#8 Le 28/01/2012, à 15:23

pingouinux

Re : Test de nombre à virgule en bash

@Bousky #7 : Ok, merci du tuyau

Hors ligne