2010-11-11 38 views
11

Tôi đã tạo một cơ sở dữ liệu - tasks.db - với SQLite. Cơ sở dữ liệu này có một bảng - việc cần làm - với các trường sau: id (pk), ngày (NGAY BÂY GIỜ với trình kích hoạt), dự án, duedate, trạng thái, mô tảLàm thế nào để tự động hoá quy trình INSERT INTO trong SQLite?

Để nhập một hàng mới trong SQLite từ dòng lệnh, Tôi phải viết:

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

là một quá trình khá dài và dễ bị lỗi. Vì vậy, tôi quyết định "tự động hóa" nó bằng tập lệnh shell (bsq) chạy như sau:

#!/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');" 

... và không có gì xảy ra khi tôi chạy: sh bsq. Trình tự xuất hiện sau đó đưa tôi trở lại dấu nhắc. Tôi đã làm gì sai hoặc tôi đã bỏ sót gì (ENTER? Nhưng làm cách nào để làm điều đó?)?

Nhờ sự giúp đỡ của bạn

THG

+0

gì bạn mong đợi? Bạn gọi 'echo sqlite ...' nó sẽ không gọi sqlite. Vui lòng định dạng nguồn đúng cách. Sử dụng các biểu tượng phía trên vùng văn bản. – khachik

+0

Tiếng vang cuối cùng có chính xác không? Hoặc bạn đang thực hiện sqlite3 trực tiếp? Nó hoạt động tốt ở đây; lặp lại lệnh ở cuối. – falstro

+0

Ngoài ra: Trong sh '$ Proj' không được coi là một biến. Sử dụng '" $ Proj "' – khachik

Trả lời

23
#!/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\");" 
+0

nó hoạt động hoàn hảo, tất nhiên. Cảm ơn rất nhiều (và lần này, tôi không quên CHẤP NHẬN câu trả lời ...) – ThG

+0

@ThG: Bạn cũng có thể upvote nó. –

+5

xin lưu ý: điều này không quan tâm đến việc trốn thoát –

Các vấn đề liên quan