我有一个SQLite数据库stuff.db(带有TABLE注释(ID INTEGER PRIMARY KEY,timeStamp DATE,注释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\");'
而且,我当然收到一条错误消息。
我应该如何进行?
提前致谢
G
最佳答案
如果像您一样使用单引号将Shell变量括起来,它们将不会扩展。也许您想要:
sqlite3 script.db "insert into notes (note) values (\"Stuff happens.\"||\"$Str1\");"
附言
我假设
||
是sqlite3语法的一部分,因为它当然不是bash,至少在这种情况下不是。如果那不对,请通知我。
关于bash - SQLite,bash脚本和串联运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4458986/