2016-11-13 5 views
1

mySQLデータベースに値を入力するためのbashスクリプトを作成しようとしています。究極の目標は、スマートモールを使ってハードドライブに関するデータを収集することですが、私は非常に多くのエラーが発生しているので、それを打破して非常に簡単に始めます。私はbash/mySQLの全面的な知識を持っています。私のテストデータベースには、USERとDATEのテーブルしか含まれていません。 これは私のbashスクリプトです:bashスクリプトでMySQLの値を取得する方法

USR=$USER 
DATE=$(date +%y%m%d) 
mysql -hlocalhost -uuser -ppw -Dtest<<EOF INSERT INTO testtbl (USER, DATE) VALUES('$USR', $DATE); 
EOF 
exit 

このエラーメッセージは、私が取得さ:私が間違っているのは何

./ysmartmon: line 4: syntax error near unexpected token `(' 
./ysmartmon: line 4: `mysql -hlocalhost -uuser -ppw -Dtest<<EOF INSERT INTO testtbl (USER, DATE) VALUES('$USR', $DATE);' 

?それはこれです?私は取り除く必要がありますか?しかし、どうすればいいのですか?

+0

次のように 'mysql.sql'のようなファイルに一連のコマンドを書き込むことでSQL文を実行できます:' echo insert into database.testtbl .... >> mysql.sql' 'mysql -uuser -ppw -hlocalhost mysql.sql' – mike510a

+0

また、 '()[] $!のような文字をエスケープする必要があるかもしれません。 ><& 'それらの前に' \ 'を追加することによって – mike510a

答えて

0
はこのように、 << EOF後にラインをブレーク

mysql -hlocalhost -uuser -ppw -Dtest << EOF 
INSERT INTO testtbl (USER, DATE) VALUES('$USR', $DATE); 
EOF 

この<< EOF構築物はヒアドキュメント、 あなたはman bashでそれについての詳細を読むことができると呼ばれています。 これをman bashで検索するには、 タイプ/here-docと入力してEnterキーを押します。

+0

ありがとう! <<の前と後に空白も追加しました。今度は次のステップに進むことができます。 – Lucid

関連する問題