Problème de script bash sous Cygwin

Problème de script bash sous Cygwin - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 20-11-2007 à 12:54:55    

Salut !
 
J'ai une tache automatisée à faire sur une longue liste de serveurs ... Je dois faire ça sous windows alors que je suis plutot un habitué d'unix, j'ai installé cygwin !
 
Mais je me retrouve avec des comportement bizarres ...   :(  
 
Ex :
 
J'ai un fichier de x serveurs
 
si je fais un test tout bete genre :
 
for i in `cat list_servers`do
echo $i
done

 
j'ai le message "syntax error near unexpected token 'echo'  :heink:  
 
Alors là, comprend pas ...
 
Si je tente un feinte genre :
 
list=`cat list_server`
echo $list

 
il me met uniquement le dernier serveur ...   :heink:  
 
Alors bon, je suis plutot habitué du ksh mais je pense pas que ça fasse une telle différence ... En bash ça doit etre pareil donc si vous pouviez me donner un coup de main ce serait sympa !  :jap:  
 
Merci !

Reply

Marsh Posté le 20-11-2007 à 12:54:55   

Reply

Marsh Posté le 20-11-2007 à 12:58:18    

Code :
  1. for i in $(cat list_servers); do
  2.    echo "$i"
  3. done


 
Tu avais oublié le ";" avant le "do" ;)


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 20-11-2007 à 13:51:16    

wedgeant a écrit :

Code :
  1. for i in $(cat list_servers); do
  2.    echo "$i"
  3. done


 
Tu avais oublié le ";" avant le "do" ;)


 
Super ça marche !!
Merci !!
 
Par contre cette syntaxe est-elle spécifique au bash ? Car en ksh on ne met pas le ";" avant le do ...

Message cité 1 fois
Message édité par flav106 le 20-11-2007 à 13:52:02
Reply

Marsh Posté le 20-11-2007 à 13:56:15    

Oui il me semble bien que c'est spécifique à bash, je ne connais presque pas ksh :jap:


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 20-11-2007 à 22:18:06    

efectivement, bash requiert un ; apres un then, do dans les structures de controles en général lorsque la stucture est sur la meme ligne que la premiere.
dans cet exemple, pas besoin de ;
 

Code :
  1. for ((i=0; i<10; i++))
  2. do echo $i
  3. done



Message édité par sputnick le 20-11-2007 à 22:18:30
Reply

Marsh Posté le 21-11-2007 à 09:55:07    

flav106 a écrit :


Par contre cette syntaxe est-elle spécifique au bash ? Car en ksh on ne met pas le ";" avant le do ...


Bien sûr que si, il faut un ; avant le do si tu le met sur la même ligne.

Reply

Marsh Posté le 21-11-2007 à 10:01:00    

y a pas de man dans cygwin [:opus dei]


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 21-11-2007 à 10:20:05    

o'gure a écrit :

y a pas de man dans cygwin [:opus dei]


"Y'en a !"©®


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed