2012-02-25 39 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

<<finish 
    here-document 
finish 

インデントなし。

3

値リストforを反復処理した後にセミコロンがないことが原因である可能性があります。対応する行を次のように置き換えてみてください

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

kevのメモはここにあります。あなたはインデントを変更したり、別のフォーマットを使用するか、この場合、最終的なfinish

<<-finish 
    here-document 
finish 

は、タブが先行することができます(ただし、スペースはまだ動作しませんが)。

+0

kevの答えは私のためには機能しませんでしたが、>> - 仕上げが機能しました。ありがとう。 – Alessandro

関連する問題