Ich habe eine Datenbank erstellt - tasks.db - mit SQLite. Diese Datenbank eine Tabelle hat - todo - mit den folgenden Feldern: id (pk), Datum (NOW mit Trigger), Projekt, duedate, Status, BeschreibungWie automatisiert man einen INSERT INTO-Prozess in SQLite?
Um eine neue Zeile in SQLite von der Kommandozeile eingeben, Ich muss schreiben:
sqlite3 tasks.db "insert into todo (project,duedate,status,description) values (2010-11_18,'Home','Urgent','Call the plumber');"
das ist ein ziemlich langer und fehleranfälliger Prozess. So entschied ich mich zu „automatisieren“ es mit einem Shell-Skript (BSQ), die läuft wie folgt ab:
#!/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');"
... und es passiert nichts, wenn ich laufen: sh BSQ. Die Sequenz erscheint und bringt mich zurück zur Eingabeaufforderung. Wo bin ich falsch gelaufen oder was habe ich weggelassen (ENTER? Aber wie mache ich das?)?
Danke für Ihre Hilfe
thg
Was erwarten Sie? Sie rufen 'echo sqlite ...' auf, es ruft sqlite nicht auf. Bitte formatieren Sie die Quelle richtig. Verwenden Sie die Symbole über dem Textfeld. – khachik
Ist das letzte Echo korrekt? Oder führen Sie sqlite3 direkt aus? Es funktioniert gut hier; echo den Befehl am Ende. – falstro
Auch: In sh '$ Proj' wird nicht als eine Variable behandelt. Verwenden Sie '" $ Proj "' – khachik