[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: