Re: [OT]¿No se pueden comparar horas en bash?.
On Tue, 5 Jul 2005, Santiago Vila wrote: On Tue, 5 Jul 2005, Pablo Braulio wrote: ¿a que te refieres con test(1)? Es el convenio para referirse a la página de manual de test, es decir, lo que sale cuando escribes man test. Empecemos por el principio. man man osea man(1). (1= sección 1 del manual) Lo cierto es que este convenio es algo de uso tan extendido que nisiquiera se dedica un parrafo especial a este asunto en la propia página man(1). La página man(1) debería tener en cuenta de que quizás sea esta la primera página de consulta que usa un usuario de Linux. -- Un saludo Antonio Castro /\ /\ \\W// _|0 0|_ +-oOOO-(___o___)-OOOo-+ | . . . . U U . Antonio Castro Snurmacher | | . . . . . . . [EMAIL PROTECTED] | +()()()-()()()+
[OT]¿No se pueden comparar horas en bash?.
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 -- Saludos. Pablo Fingerprint 5607 40CF 45EF D490 B794 5056 D7B2 C3DC ABF1 CE49 Jabber: [EMAIL PROTECTED] http://aldiagestion.com pgpF8B4Pmo71C.pgp Description: PGP signature
Re: [OT]¿No se pueden comparar horas en bash?.
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. -- que a mí ni me va ni me viene... pero por comentar...
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 19. Saludos. Cypenguin desde la patagonia. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: [OT]¿No se pueden comparar horas en bash?.
mírate en el man lo que hace date +%s quizás te sirva El 5/07/05, Cypenguin[EMAIL PROTECTED] escribió: 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 19. Saludos. Cypenguin desde la patagonia. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED] -- [o - - - -- - (\ | el pollo galáctico. ( \_(' (__(=_) -=
Re: [OT]¿No se pueden comparar horas en bash?.
El Martes, 5 de Julio de 2005 17:41, Cypenguin escribió: 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 19. Gracias. Lo probaré. -- Saludos. Pablo Fingerprint 5607 40CF 45EF D490 B794 5056 D7B2 C3DC ABF1 CE49 Jabber: [EMAIL PROTECTED] http://aldiagestion.com pgplXX05q5WGN.pgp Description: PGP signature
Re: [OT]¿No se pueden comparar horas en bash?.
On Tue, 5 Jul 2005, Pablo Braulio wrote: #/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 Aparte de lo que te han dicho ya (en particular que utilices un número entero para la hora), no se pueden comparar enteros con el símbolo , porque eso ya se utiliza en Unix para la redirección de la entrada. #!/bin/sh HORA_ACT=`date +%H%M%S` HORA_MAX=19 if [ $HORA_ACT -lt $HORA_MAX ]; then echo es pronto else echo ya es tarde fi Prueba a leer test(1) y te enterarás de cómo se comparan las cosas.
Re: [OT]¿No se pueden comparar horas en bash?.
El Martes, 5 de Julio de 2005 17:23, Santiago Vila escribió: Aparte de lo que te han dicho ya (en particular que utilices un número entero para la hora), no se pueden comparar enteros con el símbolo , porque eso ya se utiliza en Unix para la redirección de la entrada. #!/bin/sh HORA_ACT=`date +%H%M%S` HORA_MAX=19 if [ $HORA_ACT -lt $HORA_MAX ]; then echo es pronto else echo ya es tarde fi Prueba a leer test(1) y te enterarás de cómo se comparan las cosas. Esto es lo que necesitaba, gracias. Una última pregunta y perdón por mi ignorancia, ¿a que te refieres con test(1)?. -- Saludos. Pablo Fingerprint 5607 40CF 45EF D490 B794 5056 D7B2 C3DC ABF1 CE49 Jabber: [EMAIL PROTECTED] http://aldiagestion.com pgpHP8H8mtlLM.pgp Description: PGP signature
Re: [OT]¿No se pueden comparar horas en bash?.
On Tue, 5 Jul 2005, Pablo Braulio wrote: ¿a que te refieres con test(1)? Es el convenio para referirse a la página de manual de test, es decir, lo que sale cuando escribes man test.
Re: [OT]¿No se pueden comparar horas en bash?.
El Martes, 5 de Julio de 2005 17:50, Santiago Vila escribió: On Tue, 5 Jul 2005, Pablo Braulio wrote: ¿a que te refieres con test(1)? Es el convenio para referirse a la página de manual de test, es decir, lo que sale cuando escribes man test. Gracias. -- Saludos. Pablo Fingerprint 5607 40CF 45EF D490 B794 5056 D7B2 C3DC ABF1 CE49 Jabber: [EMAIL PROTECTED] http://aldiagestion.com pgpGTjlgnbhpv.pgp Description: PGP signature