J'ai une base de données SQLite, stuff.db (avec les notes TABLE (id INTEGER PRIMARY KEY, date d'horodatage, note TEXT);). L'horodatage est automatiquement déclenché.SQLite, script bash et opérateur de concaténation
Je veux le remplir à la manière rapide et sale à partir de la ligne de commande.
Alors, je l'ai écrit un script nommé bashscript1 qui va:
sqlite3 script.db 'insert into notes (note) values ("Stuff happens.");'
Mais je voulais aussi garder cette phrase que l'entrée standard et le cas échéant, pour être plus précis: Je voudrais ajouter une variable des informations telles que: "Foo entre dans la pièce." ou "Bar fait un appel téléphonique". L'idée est de concaténer ces cordes et d'avoir: "Les choses arrivent, Foo entre dans la pièce." ou "Des trucs arrivent, Bar fait un appel téléphonique."
Je réécrit le script:
echo "Do you want to add somme text ?"
read Str1
sqlite3 script.db 'insert into notes (note) values ("Stuff happens."||\"$Str1\");'
Et, je suis bien sûr un message d'erreur. Comment dois-je procéder?
Merci à l'avance
thg
Je confirme que || est l'opérateur de concaténation dans sqlite. Mais comme avec sje397 je reçois un message d'erreur: Erreur: jeton non reconnu: "\" – ThG
@SiegeX: Ne serait-il pas une meilleure solution pour concaténer les 2 chaînes dans bash avant de l'envoyer à sqlite? Mais je ne sais pas comment faire ça ... (même mesg à sje397) – ThG
Il vaudrait mieux ne pas entrer dans l'affaire quote-soupe et faire comme ça: "sqlite3 script.db" insérer dans les notes (note) valeurs ("Stuff arrive." || "'" $ Str1 "'"); ''. Je sais que c'est un peu hypocrite d'appeler cela "pas de soupe de citation" mais c'est la méthode la plus fiable. – Sorpigal