0

ftpサーバーに接続し、FTPサーバーからローカルのLinuxボックスの別のディレクトリにファイルをダウンロードするためのbashスクリプトを作成しました。

私はこれを達成するために以下を使用しています。

#! /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

USERはキーワードなので、ログインには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.
4

1 に答える 1

2

エラーメッセージ自体が上書きされる理由は、ファイル名がエラーメッセージに含まれ、キャリッジリターンがファイル名に含まれているためです。あなたはdos2unixそのことをする必要があり、DOS風のエディタでUNIXスクリプトの編集をやめる必要があります。

于 2012-08-16T21:57:54.517 に答える