Problemilla con un shell script

2004-04-02 Por tema Gotzon Astondoa
Hola a todos:

Tengo un pequeño problema con un shell script.

Os hago un resumen: el caso es que guardo en una base de datos cierta
información con la cual debo dibujar una gráfica. El eje X es el tiempo y el
eje Y es un dato. El tiempo lo guardo en segundos desde la epoca unix, es
decir, lo que devuelve el comando:   date '+ %s'

El caso es que el usuario en un momento dado me pide que cree una
gráfica desde, por ejemplo, el 15-5-2004 a las 14:02 hasta el 15-5-2004 a
las 18:00.
Y ahí viene mi problema. Desde línea de comandos esto se soluciona
lanzando un comando con este formato:
date --date='AÑO-MES-DIA HORA:MINUTO' +%s
Es decir, en el caso de inicio de la gráfica sería:
date --date='2004-5-15 14:02' +%s
que devuelve: 1084622520

En el script recogo los datos en las variables ANIO, MES, DIA, HORA,
MINUTO.
Sin embargo, cuando lanzo esta llamada desde un shell script:
FECHA_INICIO=`date --date='$ANIO-$MES-$DIA $HORA:$MIN' +%s`
me da el siguiente error:
date: invalid date `$anio-$mes-$dia $hora:$min'
He tratado de pasarle las variables de varias maneras distintas (entre
comillas, generando una única variable que contenga todas, esa variable
entre comillas, con una \ delante del `...) y no hay manera.
He comprobado que
FECHA_INICIO=`date --date='2004-5-15 14:02' +%s`
da el valor correcto y lo guarda en FECHA_INICIO correctamente.

¿Alguien me puede echar una manita?
Gracias a todos por adelantado y perdón por un mail tan largo.








Re: Problemilla con un shell script

2004-04-02 Por tema Carlos Javier Mayoral Benitez
El vie, 02-04-2004 a las 10:05, Gotzon Astondoa escribi:
 Hola a todos:
 
 Tengo un pequeo problema con un shell script.
[..]
 Sin embargo, cuando lanzo esta llamada desde un shell script:
 FECHA_INICIO=`date --date='$ANIO-$MES-$DIA $HORA:$MIN' +%s`
 me da el siguiente error:
 date: invalid date `$anio-$mes-$dia $hora:$min'
 He tratado de pasarle las variables de varias maneras distintas (entre
 comillas, generando una nica variable que contenga todas, esa variable
 entre comillas, con una \ delante del `...) y no hay manera.
 He comprobado que
 FECHA_INICIO=`date --date='2004-5-15 14:02' +%s`
 da el valor correcto y lo guarda en FECHA_INICIO correctamente.
 
 Alguien me puede echar una manita?
Usa el formato:

FECHA_INICIO=`date --date=$ANIO-$MES-$DIA $HORA:$MIN +%s`

Ahora si se expanden correctamente las variables.

 Gracias a todos por adelantado y perdn por un mail tan largo.
 

De nada.

Un saludo.