0

区切りテキスト ファイルを反復処理し、シェル スクリプトを使用してそれらを mysql DB テーブルに挿入しようとしています。

#!/bin/bash
while IFS='|' read val1 val2 val3
#cat testfile.txt | while read line
do
    #val1=`echo $line | cut -d'|' -f1`
    #val2=`echo $line | cut -d'|' -f2`
    #val3=`echo $line | cut -d'|' -f3`
    echo $val1 $val2 $val3
    /usr/local/mysql/bin/mysql --host=127.0.0.1 --user=root --password= test << EOF
    insert into addressTable(street,city,zip)values('$val1','$val2','$val3')
    EOF
done < testfile.txt

testfile.txt の内容は次のようになります。

abc|xyz|123
def|uvw|456

スクリプトを実行すると、./testMySQL.sh: line 12: syntax error: unexpected end of fileエラーが発生します。

mysql に接続するコードとそれに続く insert ステートメントをコメント アウトすると、スクリプトは正常に動作し、コンテンツを表示するだけです。

ファイルを反復している方法が原因である可能性があると思いますが、ここで何が欠けているのかわかりません。

4

1 に答える 1