エラーメッセージ - dummy.sh:行29:構文エラー:予期しないファイルの終わり[閉じる]

エラーメッセージ - dummy.sh:行29:構文エラー:予期しないファイルの終わり[閉じる]

テスト、開発、プロダクションという3つの環境があります。ユーザーがテストに入ったら、ftpホストとftpファイルをテストする必要があります。開発と生産の両方の状況は同じです。テストしようとしましたが、エラーが発生しました。Error message - dummy.sh: line 29: syntax error: unexpected end of file

!/bin/bash
while :
do
read -r INPUT_STRING
case $INPUT_STRING in
        test)
               echo "Please enter id no : "
                                read -r input_variable
                                if [[ ${#input_variable} -ne "7" ]]
                                then
                                echo "Please check the id no given"
                                exit 1
                                fi
                                HOST=xxx
                                USER=xxx
                                PASSWORD=xxx
                                ^Iftp -inv $HOST <<- EOF
                                user $USER $PASSWORD
                                cd /work/path//$input_variable/to/destination/
                                mput x.csv

^IEOF
;;
esac
done

答え1

インデントを使用したい場合は、<<-EOF代わりに使用してください。<<EOF次に、タブにテキストをインデントします。

EOF最後に、ここで文書の終わりを表示する必要があります。

コードブロックは次のとおりです。

    ftp -inv $HOST <<-EOF
            user $USER $PASSWORD
            cd /work/test//$input_variable/path/to destination/
            mput x.csv
    EOF

また、見ることができますhttp://www.tldp.org/LDP/abs/html/here-docs.html詳細については、例19.4を参照してください。

関連情報