Re: [OT] BASH - SQLite query - espansione variabili
On Wed, Oct 25, 2017 at 08:51:21PM +0200, maxlinux duemila wrote:
> credo che il problema sia variabile DATA
>
> $echo $DATA
> $"2017-10-25 16:32:40"
>
> infatti il valore di DATA contiene due virgolette, che fa a pugni con la query
>
> 'SELECT SUM(bytes) FROM acct WHERE stamp_updated > "$DATA";'
>
> che si espande in
>
> 'SELECT SUM(bytes) FROM acct WHERE stamp_updated > ""2017-10-25 16:32:40"";'
>
> prova a togliere le virgolette con qualche cosa tipo:
>
> $read DATA <<< tee </var/lib/pmacct/up-date
> $echo $DATA
> $"2017-10-25 16:32:40"
> $ DATA=$(echo $DATA | tr -d '"')
> ......
Le virgolette gli piacciono, senza produce:
$ echo $DATA
2017-10-27 21:50:31
$ sqlite3 -column /var/lib/pmacct/pmacct.db "SELECT SUM(bytes) FROM acct WHERE stamp_updated > ${DATA};"
Error: near "21": syntax error
Il problema era dovuto agli apostrofi che inglobavano la query
(sostituendoli come suggerito da Enrico ha risolto parte del problema) e al
fatto che $DATA doveva essere rappresentato ${DATA}, cosa che avevo
letto e accantonato pensando erroneamente che fosse parte del
problema.
Dunque così funziona:
sqlite3 -column /var/lib/pmacct/pmacct.db\
"SELECT SUM(bytes) FROM acct WHERE stamp_updated > ${DATA};"
Grazie a tutti
--
Felipe Salvador
Reply to: