我正在尝试将以下输出分配给变量
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\"")
这给出了相同的效果
答案 0 :(得分: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" )
答案 1 :(得分:0)
这将保存为变量v
set "select id, page from fb2 where bookcode='$bookcode' and page=$page"
read v < <(sqlite3 /home/user/db_fake_book_index "$1")