我有一个bash文件,我试图在Windows 7平台上运行Cygwin,但是这样做时我给了我一些奇怪的错误。 bash文件适用于我的Linux系统。 bach文件如下所示:
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循环示例并运行它,但是出现了同样的错误。
我是Cygwin的新手,并不知道它是否有一些小怪癖或其他一些我必须注意的事情,我试图在他们的主页上查看文档和常见问题解答。
施
Mestika
答案 0 :(得分:5)
你似乎错过了一个do
和一个shebang线:
#!/bin/bash
for (( r=0; r<10; r++ ))
do
netcat localhost 4444 < myfile.file &
done
wait
答案 1 :(得分:2)
答案 2 :(得分:1)
你应该用do做完循环块。完成
'做'错过了
答案 3 :(得分:1)
也许Cygwin版本的bash比Linux版本要老很多?这适用于MSYS bash:
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
答案 4 :(得分:0)
以下脚本将在端口0-65000上执行ssh,并将每次执行的所有日志输出到名为log.txt的文件中
替换ssh -tt -p $r host
中的“主机”
加上您希望“ SSH”登录的主机地址。
-tt命令强制tty分配并停止伪终端的分配。 (强制使用外壳)
#!/bin/bash
for (( r=0; r<65000; r++ ))
do
ssh -tt -p $r host -E log.txt < log.txt
done
wait