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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  C shell (sh): question a 1Euro: comment incrementer une valeur?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

C shell (sh): question a 1Euro: comment incrementer une valeur?

n°724270
cassiopee3​1
Posté le 13-05-2004 à 09:59:08  profilanswer
 

coucou!
 
je suis en train de faire une petit script en C-shell avec une boucle while mais quand j'incremente mon compteur, ca ne marche pas :cry:
voila ma boucle:
j=1
eps=0.000001
while [ $j -le 10 ];
do
  echo $eps >> parametre.dat
  ./ALI < parametre.dat
  j=j+1
  eps=eps*10    
done  
 
il ne comprend pas j=j+1 et il m'ecrit "eps*10" dans mon fichier au lieu de la valeur numerique de eps*10. Quelle est la bonne syntaxe, svp?
merci!!

mood
Publicité
Posté le 13-05-2004 à 09:59:08  profilanswer
 

n°724330
kenzy
Posté le 13-05-2004 à 10:42:21  profilanswer
 

je crois ke tu devré essayé $j=$j+1 voilaaa

n°724420
cassiopee3​1
Posté le 13-05-2004 à 11:15:29  profilanswer
 

j'ai deja essaye mais j'ai in message d'erreur:
pour $j=$j+1 j'ai " 1=1+1 : commande not found "  
et pour $eps=$eps*10 j'ai "0.000001*10 : command not found "
 
en fait, il ne fait pas le calcul, il recupere juste l'expression....

n°724436
Moktar1er
No one replies...
Posté le 13-05-2004 à 11:23:01  profilanswer
 

man bash me dit:

Citation :


   Évaluation Arithmétique
       L'évaluation arithmétique permet de remplacer une expression par le résultat de son évaluation. Il existe deux for-
       mats d'évaluation arithmétique :
 
              $[expression]
 
              $((expression))
 
       L'expression  est manipulée de la même manière que si elle se trouvait entre guillemets, mais un guillemet se trou-
       vant entre les crochets ou les parenthèses n'est pas traité spécifiquement.  Tous les mots de  l'expression  subis-
       sent  le  développement  des  paramètres,  la  substitution  des  commandes  et  la  suppression des apostrophes et
       guillemets. Les évaluations arithmétiques peuvent être imbriquées.
 
       L'évaluation est effectuée en suivant les règles mentionnées dans le paragraphe CALCUL ARITHMÉTIQUE (plus bas).  Si
       l'expression est invalide, bash affiche un message indiquant l'erreur, et aucune substitution n'a lieu.
 

n°724470
cassiopee3​1
Posté le 13-05-2004 à 11:37:15  profilanswer
 

j'ai aussi essaye:
 
j=$j+1 :  il comprend j= "1+1" donc il ne recupere que  
          l'expression
 
j=${j+1} : il ignore l'expression
 
${j=j+1} : il comprend "1" tout le temps
 
voila ou j'en suis... :cry:

n°724474
Moktar1er
No one replies...
Posté le 13-05-2004 à 11:40:19  profilanswer
 

t'es sûr d'avoir vraiment lu ce que j'ai collé ici? :heink:
j'ai pas parlé d'accolades mais de crochets ou de double parenthèses
 
$j=$[j+1]
 
tu le tapes sous la console ça marche ça:

Citation :


$> j=1; echo $[j+1]
2


n°724507
cassiopee3​1
Posté le 13-05-2004 à 11:54:37  profilanswer
 

desolee, je suis bigleuse, hihi.  
euh, voila ce que j'ai sur ma console:
$>j=1; echo $[j+1]
1
 
ca ne marche pas...

n°724513
cassiopee3​1
Posté le 13-05-2004 à 12:00:33  profilanswer
 

dans mon script, j'ai essaye $j=$[j+1] et ca comprend 1=2 donc il n'en veut pas.  
 
Si j'essaye j=$[j+1] la ca marche bien!!
 
En revanche, pour eps=$[eps*10] ca ne marche pas:il met syntax error.  
L'operateur multiplication, c'est bien <*> ?
(a cq iteration, je veux multiplier eps par 10 et eps n'est pas un entier)

n°724929
Grululu
Posté le 13-05-2004 à 17:23:40  profilanswer
 

cassiopee31 a écrit :

dans mon script, j'ai essaye $j=$[j+1] et ca comprend 1=2 donc il n'en veut pas.  
 
Si j'essaye j=$[j+1] la ca marche bien!!
 
En revanche, pour eps=$[eps*10] ca ne marche pas:il met syntax error.  
L'operateur multiplication, c'est bien <*> ?
(a cq iteration, je veux multiplier eps par 10 et eps n'est pas un entier)


 
Utilise expr :

Code :
  1. j=`expr $j + 1`
  2. eps=`expr $eps * 10`


Message édité par Grululu le 14-05-2004 à 10:11:47
n°725389
matafan
Posté le 14-05-2004 à 00:46:56  profilanswer
 

En tout cas man bash est clairement la dernière chose à faire puisqu'ici on parle de csh.

mood
Publicité
Posté le 14-05-2004 à 00:46:56  profilanswer
 

n°725996
cassiopee3​1
Posté le 14-05-2004 à 13:52:42  profilanswer
 

merci pour les infos, les gars ;-)


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

  C shell (sh): question a 1Euro: comment incrementer une valeur?

 

Sujets relatifs
Boucler sur les lignes d'un fichier texte (shell UNIX)[réglé][question] Erreurs
Question - [ menu déroulant + tableau ][Crystal Report V10] Question sur les impressions...
[shell]generation automatique de vraiable[shell] le double $
question existentielle ;-) SUB /function[C] implementation shell unix (fork, pipe)
question toute bête... comment créer un popup avec dreamweaverQuestion de syntaxe....
Plus de sujets relatifs à : C shell (sh): question a 1Euro: comment incrementer une valeur?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR