Stworzyłem bazę danych - tasks.db - z SQLite. Ta baza danych zawiera jeden stołowy - todo - z następujących dziedzin: id (PK), datę (obecnie ze spustem), projektem DUEDATE, status, opisJak zautomatyzować proces INSERT INTO w SQLite?
aby wprowadzić nowy wiersz w SQLite z wiersza poleceń, Muszę napisać:
sqlite3 tasks.db "insert into todo (project,duedate,status,description) values (2010-11_18,'Home','Urgent','Call the plumber');"
co jest procesem dość długim i podatnym na błędy. Więc postanowiłem "automatyzacja" to skrypt powłoki (BSQ), która przebiega w następujący sposób:
#!/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');"
... i nic się nie dzieje, gdy biegnę: SH BSQ. Sekwencja pojawia się, a następnie przywraca mnie do zachęty. Gdzie popełniłem błąd lub co pominięto (ENTER? Ale jak to zrobić?)?
Dzięki za pomoc
THG
Czego można się spodziewać? Wywołujesz 'echo sqlite ...' nie wywoła ona sqlite. Proszę poprawnie sformatować źródło. Użyj ikon nad polem tekstowym. – khachik
Czy ostatnie echo jest prawidłowe? Czy wykonujesz bezpośrednio sqlite3? Działa tutaj dobrze; powtórzenie polecenia na końcu. – falstro
Również: In sh '$ Proj "nie jest traktowane jako zmienna. Użyj '" $ Proj "' – khachik