Как автоматизировать процесс INSERT INTO в SQLite? - PullRequest
12 голосов
/ 11 ноября 2010

Я создал базу данных - tasks.db - с SQLite.В этой базе данных есть одна таблица - todo - со следующими полями: id (pk), дата (NOW с триггером), project, duedate, status, description

Чтобы ввести новую строку в SQLite из командной строки,Я должен написать:

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

, что является довольно длительным и подверженным ошибкам процессом.Поэтому я решил «автоматизировать» его с помощью сценария оболочки (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');"

… и при запуске ничего не происходит: sh bsq.Последовательность появляется, затем возвращает меня к приглашению.Где я ошибся или что я пропустил (ENTER? Но как мне это сделать?)?

Спасибо за вашу помощь

ThG

1 Ответ

25 голосов
/ 11 ноября 2010
#!/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\");"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...