【发布时间】:2014-03-11 09:55:41
【问题描述】:
我有这样的需求,读取服务器 A 上的文件 X 的内容并连接到服务器 B 并获取文件 X 的内容。
我的代码是
set -x
idFile="/tserver/Ravi/logs/FilesToBeCopied.txt"
while read line
do
echo $line
ftp -in hrserver << ! > FtpLog.log
user ravi welcome1
cd /hrserver/kumar/Images
lcd /tserver/Ravi/logs/FTPFiles/
get $line
quit
done < $idFile
我得到的错误是:
./myScript.sh
+ idFile=/tserver/Ravi/logs/FilesToBeCopied.txt
./myScript.sh: line 13: syntax error: unexpected end of file
也尝试使用 for 循环:
for line in `cat /tserver/Ravi/logs/FilesToBeCopied.txt`;do
echo $line
echo "$line $FileStorageLocation"
ftp -in hrserver << ! > FtpLog.log
user ravi welcome1
cd /hrserver/kumar/Images
lcd /tserver/Ravi/logs/FTPFiles/
get $line
quit
done
我遇到了同样的错误,指向文件的最后一行并显示语法错误。
当我尝试通过注释 while/for 循环来运行相同的脚本时,脚本运行成功并且 ftp 完成(这里我硬编码了行值)。由于我的要求是从文件中读取每一行并执行 ftp,因此我选择了循环。
我不熟悉 shell 脚本。我的问题是,是否可以将 FTP 命令合并到一个循环中?如果是这样,你能帮我确定我的代码哪里出错并解决它吗?如果没有,您能否针对我的要求提供解决方案?
【问题讨论】: