shell script로 ftp put을 하는데 오류점 잡아주세요

heojaes의 이미지

shell script를 이용해서 ftp put를 하는데 아래와 같이 만들었는데 실행을하면
syntax error at line 10 : `<' unmatched 메시지가 나옵니다.
ftp부분만 따로 만들어서 하며는 오류가 없는데..
for문에 같이 넣고 하면 오류가 발생합니다.
ftp를 빼고 for문을 돌려도 오류가 없습니다.
왜그런지 모르겠습니다. shell 고수님들 알려주세요!

#!/bin/ksh
CUR_DATE=`date +%Y%m%d`
cd /home/test
pwd

    for i in *.log
    do

            echo $i
            ftp -n -v 211.192.197.91 21 <<ENDFTP
            user test "test"
            prompt
            hash on
            bin
            pwd
            cd /home/test/log
            put $i
            bye
            ENDFTP

            mkdir $CUR_DATE
            mv $i /home/test/$CUR_DATE/$i


    done
exit 0
익명 사용자의 이미지

ENDFTP 를 indent하지말고 젤 앞으로 빼세요...

            bye
            ENDFTP

            mkdir $CUR_DATE 
->
            bye
ENDFTP

            mkdir $CUR_DATE 
cinsk의 이미지

간단한 것이라면 ncftp package안에 있는 ncftpput과 ncftpget을 이용하면 shell command 하나로 간단히 파일 전송을 할 수 있습니다.

복잡한 것이라면 bash를 쓰는 것보다 expect를 쓰는 것을 추천합니다.