1

次の出力を変数に割り当てようとしています

sqlite3 /home/user/db_fake_book_index "select id, page from fb2 where bookcode='$bookcode' and page=$page

実行すると、次のように引用されます

echo "sqlite3 /home/user/db_fake_book_index \"select id, page from fb2 where bookcode='$bookcode' and page=$page\""

私は得る

sqlite3 /home/user/db_fake_book_index "select id, page from fb2 where bookcode='557S' and page=10"

コンソールにコピーすると正常に動作しますが、スクリプトで $() で囲むと動作しません。sqlite は変数が多すぎると判断し、二重引用符が削除されているようです。

$(printf "sqlite3 /home/user/db_fake_book_index \"select id, page from fb2 where bookcode='$bookcode' and page=$page\"")

これは同じ失敗を与えます

4

2 に答える 2

3
result=$( sqlite3 /home/user/db_fake_book_index "select id, page from fb2 where bookcode='$bookcode' and page=$page" )

また

query="select id, page from fb2 where bookcode='$bookcode' and page=$page"
result=$( sqlite3 /home/user/db_fake_book_index "$query" )
于 2013-03-09T19:41:37.317 に答える
0

これは変数として保存されますv

set "select id, page from fb2 where bookcode='$bookcode' and page=$page"
read v < <(sqlite3 /home/user/db_fake_book_index "$1")
于 2013-03-09T18:44:59.260 に答える