2010-05-12 5 views
2

J'ai un fichier bash, que j'essaie de lancer dans Cygwin sur une plate-forme Windows 7, mais je me trompe quand je le fais. Le fichier bash fonctionne sur mon système Linux. Le fichier bach ressemble à ceci:Aide sur le fichier Cygwin bash

for ((r=0; r <10; r++)) 

    netcat localhost 4444 < myfile.file & 

done 

wait 

mais j'obtiens une erreur pour ma boucle for. Plus précisément, il écrit:

./tuning_test.bsh: line 1: syntax error near unexpected token `(' 

'/tuning_test.bsh: line 1: `?for ((r=0; r <10; r++)) 

Je ne comprends pas parce que je suis sûr que j'ai un fichier bash travailler sur mon Linux. J'ai même essayé de trouver un exemple de for-loop à partir d'un site Linux-bash et de l'exécuter mais avec la même erreur. Je suis tout nouveau à Cygwin et ne sait pas s'il a quelques petites bizarreries ou quelque chose d'autre que je dois savoir et j'ai essayé de regarder la documentation et la FAQ sur leur page d'accueil.

Sincère

Mestika

Répondre

4

Vous semblez manquer un do et une ligne de tralala:

#!/bin/bash 
for ((r=0; r<10; r++)) 
do 
    netcat localhost 4444 < myfile.file & 
done 
wait 
1

vous devez marquer correctement le bloc de boucle avec ne .. fait
'do' manqué

1

Peut-être la version Cygwin de bash est beaucoup plus ancienne que celle de Linux? Cela fonctionne pour moi avec bash MSYS:

for ((r=0; r <10; r++)) 
do 
    echo $r 
done 

Notez que j'ai ajouté le mot-clé do à la boucle. Vous pouvez également essayer d'écrire la boucle comme:

for r in 0 1 2 3 4 5 6 7 8 9 
do 
    echo $r 
done 
+1

Ou 'pour r in {0..9}' –

+0

@Dennis Ne fonctionne pas pour moi. –

+0

'pour r dans {0..9}; fais écho $ r; done' - Bash standard. (fonctionne aussi dans zsh et ksh93, mais je ne pense pas qu'il soit spécifié dans POSIX) –

3

ouais je trouve que mon éditeur de texte (notepad ++) était assis à DOS/Windows mise en forme, je viens de le changer en UNIX et cela a fonctionné :-)

+0

Pour notepad ++: Édition> Opérations EOL> UNIX. –

Questions connexes