2012-02-25 10 views
2

다음 쉘 스크립트를 사용하여 모든 파일을 찾은 다음 파일 이름을 데이터베이스에 삽입해야합니다.예기치 않은 파일 끝 오류 쉘 스크립트

./testDBScript.sh: line 16: syntax error: unexpected end of file 

내가 좋아하는 루프에서 다음 코드를 사용하여 내 스크립트에서 MySQL 데이터베이스에 삽입하려고 :

for filename in `find . \! -name [*./]` 
do 
    echo "$filename" 
    insert_statement_for_db="insert into files(filename) VALUES(\"$filename\");"  
    mysql -h $db_host -u $db_user -D $db_database << finish 
    $insert_statement_for_db 
    finish 
done 

어떻게 내가 가진 유일한 문제는 내가 오류가 계속이다 그렇지 않으면 데이터베이스에 삽입 할 수 있습니까? 온라인 튜토리얼은 저를 해결책으로 안내합니다. 여기-문서의

답변

3

형식은 다음과 같습니다

<<finish 
    here-document 
finish 

없음 들여 쓰기 finish 전에.

3

값 목록 for이 반복되어야하므로 세미콜론이 누락되었을 수 있습니다.

for filename in `find . \! -name [*./]`; 

여기에 kev의 메모도 해당 문서로 바뀌십시오. 당신은 들여 쓰기를 변경하거나 다른 형식을 사용 할 수 있습니다 :이 경우 최종 finish에서

<<-finish 
    here-document 
finish 

이 탭이 선행 될 수있다 (그러나 공간은 여전히 ​​작동하지 않습니다)를.

+0

kev의 대답은 나를 위해 작동하지 않았지만 >> 사용 - 끝내기. 감사. – Alessandro

관련 문제