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 さんに感謝!(´Д⊂

General · 未分類
いいね!   0
Loading...

関連

コメントを残す

メールアドレスが公開されることはありません。