如何在SQLite中自动执行INSERT INTO过程?

ThG*_*ThG 14 sqlite bash scripting

我用SQLite创建了一个数据库 - tasks.db.这个数据库有一个表 - 待办事项 - 包含以下字段:id(pk),date(NOW with trigger),项目,duedate,status,description

要从命令行在SQLite中输入新行,我必须写:

sqlite3 tasks.db "insert into todo (project,duedate,status,description) values (2010-11_18,'Home','Urgent','Call the plumber');"
Run Code Online (Sandbox Code Playgroud)

这是一个相当长且容易出错的过程.所以我决定使用shell脚本(bsq)"自动化"它,运行如下:

#!/bin/sh
echo "What project ?"
read Proj
echo "For when ?"
read Due
echo "What status ?"
read Stat
echo "What to do ?"
read Descr

echo sqlite3 tasks.db "insert into todo (project,duedate,status,description) values ('$Proj',$Due,'$Stat','$Descr');"
Run Code Online (Sandbox Code Playgroud)

......当我跑步时没有任何反应:sh bsq.然后出现序列然后将我带回提示符.我哪里出错或者我省略了什么(输入?但我该怎么办?)?

谢谢你的帮助

ThG的长度

kha*_*hik 25

#!/bin/sh
echo "What project ?"
read Proj
echo "For when ?"
read Due
echo "What status ?"
read Stat
echo "What to do ?"
read Descr

echo "im gonna run" sqlite3 tasks.db "insert into todo \
     (project,duedate,status,description) \
     values (\"$Proj\",$Due,\"$Stat\",\"$Descr\");"
sqlite3 tasks.db "insert into todo (project,duedate,status,description) \
         values (\"$Proj\",$Due,\"$Stat\",\"$Descr\");"
Run Code Online (Sandbox Code Playgroud)

  • 我该怎么办才能逃脱? (6认同)
  • 请注意:这不会导致逃避 (5认同)