2010-05-12 30 views
2

我有一個bash文件,我想在Cygwin的在Windows 7平臺上運行,但這樣做的時候我給了我一些奇怪的錯誤。 bash文件適用於我的Linux系統。巴赫文件看起來像這樣:幫助Cygwin的bash的文件

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

    netcat localhost 4444 < myfile.file & 

done 

wait 

,但我得到一個錯誤,我的for循環。更精確它寫道:

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

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

我不明白,因爲我相信,我已經在我的Linux工作bash的文件。我甚至試圖從Linux-bash站點找到一個for-loop示例並運行它,但出現同樣的錯誤。

我是Cygwin的新手,不知道它是否有一些小怪癖或其他一些我必須注意的事情,我試着在他們的主頁上查看文檔和FAQ。

真誠

Mestika

回答

4

你似乎缺少do和認領線:

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

你應該正確標註有做...做
「做」循環塊錯過

1

也許Cygwin的版本的bash的是比Linux的一個大很多?這對我的作品與MSYS慶典:

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

請注意,我已經添加了do關鍵字來循環。您也可以嘗試寫循環爲:

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

或'在環R {0..9}' – 2010-05-12 12:45:22

+0

@Dennis不爲我工作。 – 2010-05-12 12:56:59

+0

'對於{0..9}中的r;做echo $ r;完成 - 標準Bash。 (也適用於zsh中和ksh93的,但我不認爲這是POSIX指定) – 2010-05-12 14:17:38

3

是的,我發現我的文本編輯(記事本+ +)是坐在DOS /的Windows格式,我只是把它改爲UNIX和它的工作:-)

+0

記事本++:編輯> EOL操作> UNIX。 – 2015-01-28 20:44:27