He creado una base de datos - tasks.db - con SQLite. Esta base de datos tiene una tabla - TODO - con los siguientes campos: Identificación (PK), fecha (ahora con el gatillo), proyecto, DueDate, estado, descripción¿Cómo automatizar un proceso INSERT INTO en SQLite?
Para introducir una nueva fila en SQLite desde la línea de comandos, Tengo que escribir:
sqlite3 tasks.db "insert into todo (project,duedate,status,description) values (2010-11_18,'Home','Urgent','Call the plumber');"
que es un proceso bastante largo y propenso a errores. Así que decidí "automatizar" con un script de shell (BSQ) que se ejecuta de la siguiente manera:
#!/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');"
... y no pasa nada cuando corro: BSQ sh. La secuencia aparece y luego me devuelve al mensaje. ¿Dónde me equivoqué o qué omití (¿ENTRAR? ¿Pero cómo lo hago?)?
Gracias por su ayuda
THG
¿Qué esperas? Llama a 'echo sqlite ...' no invocará sqlite. Formatee la fuente correctamente. Use los íconos sobre el área de texto. – khachik
¿Es correcto el último eco? ¿O está ejecutando sqlite3 directamente? Funciona bien aquí; repitiendo el comando al final. – falstro
También: en sh '$ Proj' no se trata como una variable. Use '" $ Proj "' – khachik