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

Re: [OT]¿No se pueden comparar horas en bash?.



On Tue, 2005-07-05 at 16:51 +0200, Iñaki wrote:
> El Martes, 5 de Julio de 2005 16:29, Pablo Braulio escribió:
> || Hola a todos.
> || Estoy tratando de hacer un sencillo script para que haga una determinada
> || función dependiendo de la hora que sea.
> || La finalidad es dada una hora en una variable, la compare con la hora
> || actual y si está última es superior, ejecute. Pero no consigo hacer que lo
> || compare. No soy ningún experto en bash, a lo mejor estoy muy equivocado,
> || por eso lo planteo.
> || Pego el script.
> ||
> || #/bin/bash
> ||
> || HORA_ACT=`date |awk {'print $4'}`
> || HORA_MAX="19:00:00";
> ||
> || if $HORA_ACT < $HORA_MAX ;then echo "es pronto"; else echo "ya es tarde";
> || fi
> ||
> || Esto no es mas que la primera prueba, luego cambio los "echo" por la
> || ejecución que me interesa. Pero el resultado es este.
> ||
> || line 6: 19:00:00: No existe el fichero o el directorio
> || ya es tarde
> 
> 
> Me temo que BASH no contempla variables de tipo TIME como lo pueden hacer 
> otros lenguajes tipo PHP o SQL.
> 
> La solución sería definir a conciencia una función que compare dos horas, la 
> cual debería comparar primero la cifra o cifras anteriores a los dos puntos y 
> en caso de empate seguir con la/las siguiente/s. Un tostón, vamos.
> 
> Tal vez podrías usar lenguajes PHP en línea de comandos (hay que instalar no 
> recuerdo qué paquete), y no sé muy bien cómo integrarlo o usarlo desde tu 
> script de BASH.
> 
> Suerte.
> 


no es necesario estar tanto barullo.

man date

fijate de formatear la salida para que quede: HHMMSS (sin los dos
puntos)

osea, lo transformas en un numero entero.

y ahi lo comparas con 190000.


Saludos.


Cypenguin
desde la patagonia.



Reply to: