原码:
#!/bin/sh
log_date=`date "+%y%m%d%H%M%S"`
echo "请输入服务器IP地址:"
read ipserver
echo "请输入用户名:"
read username
echo "请输入密码:"
read passwd
i=1
while [ i -eq 1 ]
do
sleep 10
if [ -f tnms-info.log.5 ]; then
rm tnms-info.log.5
else
echo ""
fi
ftp -n $ipServer <<EOF
user $username $passwd
bin
cd /home/test/appserver/bin
lcd /home/test/log
get tnms-info.log.5
delete tnms-info.log.5
bye
EOF
done
运行后结果如下:
请输入服务器IP地址:
192.168.1.58
请输入用户名:
test
请输入密码:
test
在shell 中, 我以函数的方式调用ftp -na << ! 报以下错误
: syntax error at line 20 : `<' unmatched
代码如下:
ftpdown()
{
ftp -nv <<!
open $ftpdownip
user $ftpdownuser $ftpdownpasswd
bin
prompt off
lcd $localdir
cd $remotedir
mget *
!
exit 0
}
while [ 1 ]
do
....
read ans
case $ans in
0)
clear
exit
;;
1)
clear
ftpdown
exit
;;
}
在Shell中按下面的写
ftp -ni ${ftp_ip}<<!
user $ftp_user $ftp_passwd
bin
cd $ftp_path
mget $ftp_file
bye
!
是对的,可是在外面嵌while语句,就会报 syntax error at line 23 : `<' unmatched这样的错误,而将上面的代码注释掉,while中的语句执行也是对的。请问,这个问题如何解决?
其中line 23指是的 ftp -ni ${ftp_ip}<<!这行
答案:是作为和<<!对应的另外一个“!”,应该写到该行的最前面,在它前面不允许留有空格tab键之类的
#!/usr/bin/ksh
. /zhjs/.profile
SOURCE_ID=/work/temp1
DEST_ID=/carlist
Hip=134.88.1.199
Hport=21
Husr=****
Hpass=****
cd $DEST_ID
for filename in `ls -d zs*`
do
ftp -i -n $Hip $Hport <<FTPIN
user $Husr $Hpass
bin
prom
cd $SOURCE_ID
get $filename
bye
FTPIN
done
目前所写的脚本希望在ftp上传成功返回0,ftp上传失败返回1,但试了很多方法,比如$?,trap和管道等都不行,请各位xdjm赐教,谢谢!ftp上传代码如下(已调试成功):
echo send the file to ftp server...
ftp -n<<!
open $host
user $user $password
binary
prompt off
lcd $local_dir
cd $remote_dir
put aa.TXT
close
bye
!