2012-02-25 75 views
2

我有以下shell腳本查找所有文件,然後應該將文件名插入到數據庫中。我唯一的問題是,我不斷收到錯誤:文件錯誤shell腳本意外結束

./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關於here-documents的說明也是對的。您可以更改縮進或使用其他格式:

<<-finish 
    here-document 
finish 

在這種情況下,最終finish可以通過標籤的前面(但空間仍然無法工作)。

+0

kev的回答對我不起作用,但使用>> - 完成工作。謝謝。 – Alessandro 2013-09-19 14:35:06