意外'完成'附近的shell脚本语法错误

时间:2012-10-24 20:11:42

标签: linux bash

嗨我刚接触linux并需要shell脚本的帮助我写的是自动找到ftp服务器的ip并将文件复制到它们。这是我的代码,但运行时出错

USER=anonymous
PWD=any
PORTCHECK="1"
for IP in 'sqe 6 250';
do
PORTCHECK= nmap -p21 -oG - 192.168.1.$IP | grep '21/open'
if [$PORTCHECK != "1" ]; then
ftp -p -n -i -v 192.168.1.$IP
user $USER $PWD
cd "Mounted Volume"
put foo
put bar
bye
if
CHECKPORT="1"
done

,错误是

./newscrpt: line 19: syntax error near unexpected token `done'
./newscrpt: line 19: `done'

这是用于在重新安装后将文件复制到多个winCE媒体系统请帮助我无法解决它

3 个答案:

答案 0 :(得分:3)

我想在fi之上说if而不是CHECKPORT

答案 1 :(得分:0)

如果您查看if语句的结构,您会注意到他们需要thenfi。见下文:

if [ conditional expression ]
then
    //stuff 
fi

答案 2 :(得分:0)

使用:

而不是编写for IP in 'sqe 6 250';(使用seq打破代码)
for IP in {6..250}