Arrays 在shell中循环通过数组时出错

Arrays 在shell中循环通过数组时出错,arrays,shell,unix,ftp,Arrays,Shell,Unix,Ftp,我已经编写了一个脚本来从我的目录中ftp一组文件,但是我在尝试循环遍历数组时遇到了一个错误 #!/usr/bin/ksh HOST='xxx.xxx.xxx.xxx' USER='avio' PASSWD='jun' FILES[0]=D141203.T024413 FILES[1]=D150101.T012755 FILES[2]=D141203.T024418 echo 'no of files: ' ${#FILES[@]} ftp -n -v $HOST <&

我已经编写了一个脚本来从我的目录中ftp一组文件,但是我在尝试循环遍历数组时遇到了一个错误

#!/usr/bin/ksh
HOST='xxx.xxx.xxx.xxx'   
USER='avio'    
PASSWD='jun'    
FILES[0]=D141203.T024413
FILES[1]=D150101.T012755
FILES[2]=D141203.T024418
echo 'no of files: ' ${#FILES[@]}
ftp -n -v $HOST << EOS
ascii
user $USER $PASSWD
for i in "${FILES[@]}" 
do 
get $i
done
bye
EOS

for
循环不作为
bash
命令执行;而是作为字符串传递给
ftp
命令。相反,使用管道将命令输出馈送到
ftp

#!/usr/bin/ksh
HOST='xxx.xxx.xxx.xxx'   
USER='avio'    
PASSWD='jun'    
FILES[0]=D141203.T024413
FILES[1]=D150101.T012755
FILES[2]=D141203.T024418
echo 'no of files: ' ${#FILES[@]}
{ echo "ascii"
  echo "user $USER $PASSWD"
  for i in "${FILES[@]}";  do 
     echo "get $i"
  done
  echo "bye"
} | ftp -n -v $HOST

for
循环不作为
bash
命令执行;而是作为字符串传递给
ftp
命令。相反,使用管道将命令输出馈送到
ftp

#!/usr/bin/ksh
HOST='xxx.xxx.xxx.xxx'   
USER='avio'    
PASSWD='jun'    
FILES[0]=D141203.T024413
FILES[1]=D150101.T012755
FILES[2]=D141203.T024418
echo 'no of files: ' ${#FILES[@]}
{ echo "ascii"
  echo "user $USER $PASSWD"
  for i in "${FILES[@]}";  do 
     echo "get $i"
  done
  echo "bye"
} | ftp -n -v $HOST