我有以下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
我还能如何插入数据库?在线教程引导我找到解决方案。
答案 0 :(得分:3)
here-documents的格式为:
<<finish
here-document
finish
finish
之前没有缩进。
答案 1 :(得分:3)
可能是因为值for
列表应该迭代后丢失分号。尝试用
for filename in `find . \! -name [*./]`;
kev关于here-文件的说明也是对的。您可以更改缩进或使用替代格式:
<<-finish
here-document
finish
在这种情况下,最后的finish
可以以制表符开头(但空格仍然不起作用)。