SQLite,bash脚本和连接运算符

时间:2010-12-16 09:02:55

标签: bash sqlite

我有一个SQLite数据库,stuff.db(带有TABLE备注(id INTEGER PRIMARY KEY,timeStamp DATE,note TEXT);)。 timeStamp会自动触发。

我想从命令行快速填充它。

所以,我写了一个名为bashscript1的脚本:

sqlite3 script.db 'insert into notes (note) values ("Stuff happens.");'

但我希望将这句话作为标准条目,如果有必要,更准确:我想添加变量信息,例如:“Foo进入房间。”或者“酒吧打个电话。”我们的想法是将这些字符串连接起来,然后:“东西发生了.Foo进入房间。”或者“东西发生了。酒吧打个电话。”

所以我重写了剧本:

echo "Do you want to add somme text ?"
read Str1
sqlite3 script.db 'insert into notes (note) values ("Stuff happens."||\"$Str1\");'

当然,我收到了一条错误消息。 我该怎么办?

提前致谢

ThG的长度

2 个答案:

答案 0 :(得分:2)

尝试:

sqlite3 script.db "insert into notes (note) values ('Stuff happens.$Str1');"

请注意,如果您的$Str1包含单引号,则会中断。

答案 1 :(得分:1)

Shell变量在包含在单引号中时不会扩展。也许你想要:

sqlite3 script.db "insert into notes (note) values (\"Stuff happens.\"||\"$Str1\");"

P.S。 我假设||是sqlite3语法的一部分,因为它肯定不是bash,至少不是在那个上下文中。如果那不对,请告诉我。