2012-08-16 63 views
0

我写了一个bash脚本来连接到ftp服务器,并将文件从FTP服务器下载到我本地Linux机器上的不同目录中。linux ftp lcd error没有这样的文件或目录

我正在使用以下来实现此目的。

#! /bin/sh 
FILENAME='helloworld.txt' 
USSER='username' 
PASSWD='password' 
ftp -niv ftp.domain.com <<HEREDOC 
quote USER $USSER 
quote PASS $PASSWD 
lcd /home/username/scripts/data 
mget $FILENAME 
bye 
HEREDOC 

我不得不用USSER登陆,因为用户是关键字

而且,我可以手动运行该命令没有任何错误。

有谁知道这个问题可能是什么?任何与此有关的帮助,或导致在哪里看,将不胜感激。

编辑

当我运行该脚本,我得到以下并注意该错误信息是如何覆盖了大部分的路径,这是呼应

# bash test.sh 
test.sh: line 11: warning: here-document at line 5 delimited by end-of-file (wan')d `HEREDOC 
Connected to ftp.domain.com (ipaddress). 
220 Welcome to the domain FTP Server 
331 Password required for username. 
230 User username logged in. 
: No such file or directoryts/data 
local: helloworld.txt remote: helloworld.txt 
227 Entering Passive Mode (216,19,206,212,226,85) 
150 Data connection accepted from myipaddress:54375; transfer starting for /helloworld.txt (107828 bytes) 
226 File sent ok. 
107828 bytes received in 0.137 secs (789.81 Kbytes/sec) 
?Invalid command 
?Invalid command 
221 Goodbye. 
+0

执行此脚本的系统上是否存在“/ home/username/scripts/data”?我只是复制你的脚本(显然不同的文件名,用户名,密码,网站等),并且它工作的很好.... – twalberg 2012-08-16 21:28:32

+0

@twalberg是的。我可以连接,更改本地目录并手动下载而不会出错,但运行脚本文件时出现错误。请注意,错误在路径上重叠/写入。 – 2012-08-16 21:57:18

+0

@twalberg难道这是我的系统安装的方式吗? Fedora 14(Laughlin) Linux 2.6.35.4-rscloud x86_64 – 2012-08-16 22:02:01

回答

2

原因的错误消息覆盖本身就是您的文件名被包含在错误信息中,并且您的文件名中包含回车符。你需要dos2unix那件事,并停止用DOS-ISH编辑器编辑unix脚本。

+0

谢谢,我在vim中重写了它,它工作正常! – 2012-08-16 22:13:42

相关问题