Home > Archives > 03 November 2008

03 November 2008

SQLite3 + シェルスクリプトの罠

SQLite3 でデータベースを構築し、SQL 文の入力の手間を省くためにシェルスクリプトから SELECT 文を発行させようとしてうまくいかずはまったのでメモメモ。

#!/bin/sh
NO=$1
SQL="SELECT no,ans FROM TABLE_NAME WHERE no = $NO"
COMMAND="sqlite3 DB_NAME '$SQL'"
$COMMAND
exit 0


という answer.sh シェルスクリプトを作り、

$ ./answer.sh 1

のように実行しても、

SQL error: unrecognized token: "'select"

というエラーを吐くばかりで動いてくれません。

これを動かすには以下のようにする必要があるようです。

#!/bin/sh
NO=$1
SQL="SELECT no,ans FROM TABLE_NAME WHERE no = $NO;"
COMMAND="sqlite3 DB_NAME"
echo $SQL | $COMMAND
exit 0


これならば考えた通りに動きました。

相談に乗り原因を調べてくれた上により解決法まで教えてくれた MMAX さんに感謝!(´Д⊂

More...

Home > Archives > 03 November 2008

Feeds

Page Top