0

スクリプトの実行中に次のエラーが発生します。どこが間違っているのかわからない。

エラーメッセージ:

./ftp_send_script.sh: line 40: syntax error: unexpected end of file

これがスクリプトです

#!/usr/bin/bash

#Define Variables
#------------------------------------------------------------------------------

HOST=qftpserver
USER=ftpuser
PASS=password

#------------------------------------------------------------------------------

#FTP files
#------------------------------------------------------------------------------
for FILE in `ls *.txt`
do
        ftp -n -p << EOT
        open $HOST
        user $USER $PASS
        prompt n
        type binary
        mput ${FILE}
        quit
        EOT
echo ${FILE}
done
#------------------------------------------------------------------------------
4

1 に答える 1

1

ヒアドキュメントのターミネータは、インデントではなく、行の先頭にある必要があります。

for FILE in `ls *.txt`
        ...
        mput ${FILE}
        quit
        EOT

する必要があります

for FILE in `ls *.txt`
     ...
     mput ${FILE}
     quit
EOT    <---start in column 0, not indented.

インデントされているため、ヒアドキュメントは実際には終了せず、シェルパーサーはスクリプトの最後から実行されるだけです。unexpected end of file

于 2012-11-19T14:52:13.790 に答える