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