意外的文件错误shell脚本结束

时间:2012-02-25 14:02:23

标签: 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

我还能如何插入数据库?在线教程引导我找到解决方案。

2 个答案:

答案 0 :(得分:3)

here-documents的格式为:

<<finish
    here-document
finish

finish之前没有缩进。

答案 1 :(得分:3)

可能是因为值for列表应该迭代后丢失分号。尝试用

替换相应的行
for filename in `find . \! -name [*./]`;

kev关于here-文件的说明也是对的。您可以更改缩进或使用替代格式:

<<-finish
    here-document
finish

在这种情况下,最后的finish可以以制表符开头(但空格仍然不起作用)。