C shell (sh): question a 1Euro: comment incrementer une valeur? - Shell/Batch - Programmation
Marsh Posté le 13-05-2004 à 11:15:29
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.... 
Marsh Posté le 13-05-2004 à 11:23:01
man bash me dit: 
| Citation :   | 
Marsh Posté le 13-05-2004 à 11:37:15
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... 
Marsh Posté le 13-05-2004 à 11:40:19
t'es sûr d'avoir vraiment lu ce que j'ai collé ici?  
 
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 :   | 
 
Marsh Posté le 13-05-2004 à 11:54:37
desolee, je suis bigleuse, hihi.  
euh, voila ce que j'ai sur ma console: 
$>j=1; echo $[j+1] 
1 
 
ca ne marche pas... 
Marsh Posté le 13-05-2004 à 12:00:33
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)
Marsh Posté le 13-05-2004 à 17:23:40
| cassiopee31 a écrit : dans mon script, j'ai essaye $j=$[j+1] et ca comprend 1=2 donc il n'en veut pas.   | 
 
 
Utilise expr : 
| Code : 
 | 
Marsh Posté le 14-05-2004 à 00:46:56
En tout cas man bash est clairement la dernière chose à faire puisqu'ici on parle de csh.
Marsh Posté le 13-05-2004 à 09:59:08
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
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!!