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 17/04/2010, à 20:56

leold

[resolu] shell : division qui ne fonctionne pas avec les 8 et 9

hello
il m'arrive un drôle de truc :

#!/bin/bash
my_date="09"

((my_date_bis=$my_date/1))

echo $my_date_bis  $my_date

si je lance se code comme ca j'ai l'erreur :

./calcul: line 4: ((: my_date_bis=09: valeur trop grande pour la base (error token is "09")

si on change le 09 par 08 idem par contre si on prend 01 02 03 04 05 06 07 ca passe

j'aimerai bien comprendre pourquoi
je me suis uppercut de ca dans se code la

heures=${line%%:*}
     
     line=${line#*:}
     mins=${line%%:*}
     
     line=${line#*:}
     secs=${line%%:*}
     
     
     let "my_pause=($heures*3600)+($mins*60)+($secs)+((($RANDOM*2000)/32767)+300)"

alors que ma valeur de line était 2:16:09

si quelqu'un peut m'expliquer ?

Dernière modification par leold (Le 17/04/2010, à 21:20)


l’imbécile est pas celui qui ne sait pas mais celui qui refuse d’apprendre

Hors ligne

#2 Le 17/04/2010, à 21:13

toto2006

Re : [resolu] shell : division qui ne fonctionne pas avec les 8 et 9

salut ,

regarde ce post la réponse de totor !

http://forum.ubuntu-fr.org/viewtopic.php?id=389891

Totor
$((10#${variable})) : "Evaluation" de 10#${variable}. Cela permet de supprimer les "0" se trouvant en début de nombre. Il est impératif de préciser la base car si un nombre commence par 0, il est considéré comment étant exprimé en hoctal.

sinon pour ton code :

((my_date_bis=10#${my_date}/1))

Hors ligne

#3 Le 17/04/2010, à 21:20

leold

Re : [resolu] shell : division qui ne fonctionne pas avec les 8 et 9

merci pour ta reponse
je comprends mieux


l’imbécile est pas celui qui ne sait pas mais celui qui refuse d’apprendre

Hors ligne