Chinaunix

标题: 自动 FTP ,在循环中为什么出错? [打印本页]

作者: li_zs    时间: 2004-02-06 15:12
标题: 自动 FTP ,在循环中为什么出错?
#!/bin/ksh
a=1
sum=`wc -l hostlist | awk '{print $1}'`
sum=`echo $sum+1 | bc`
while [ "$a" -lt "$sum" ]
do
hostnames=`awk '{print $1}' hostlist | sed -n "$a"p`
hostpasswd=`awk '{print$2}' hostlist | sed -n "$a"p`
hostuser=`awk '{print $3}' hostlist | sed -n "$a"p`
ftp -n << !
open $hostnames
user $hostuser $hostpasswd
ascii
get check.log
bye
!
a=`echo $a+1 | bc`
done

这是从各位大侠 以前的贴子里找出来的,但是,没有 while 循环时可以正常执行,在 while 循环后出错:syntax error at line 10 : `<<' unmatched
    ftp -n << ! 在循环中不能用?为什么?

谢谢各位,麻烦答复!
作者: li_zs    时间: 2004-02-06 15:44
标题: 自动 FTP ,在循环中为什么出错?
用这种方式,可以了。

#!/bin/ksh
a=1
sum=`wc -l hostlist | awk '{print $1}'`
sum=`echo $sum+1 | bc`
while [ "$a" -lt "$sum" ]
do
hostnames=`awk '{print $1}' hostlist | sed -n "$a"p`
hostpasswd=`awk '{print$2}' hostlist | sed -n "$a"p`
hostuser=`awk '{print $3}' hostlist | sed -n "$a"p`
(
echo "user $hostuser $hostpasswd"
echo "bi"
echo "lcd tmp"
echo "get check.log"
echo "bye"
) | ftp -n $hostnames
a=`echo $a+1 | bc`
done
作者: li_zs    时间: 2004-02-06 15:47
标题: 自动 FTP ,在循环中为什么出错?
但是,在最初的 while 循环中,为什么 ftp -n << ! 出错?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2