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

2005-07-06 Por tema Antonio Castro
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?.

2005-07-05 Por tema Pablo Braulio
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?.

2005-07-05 Por tema Iñaki
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?.

2005-07-05 Por tema Cypenguin
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?.

2005-07-05 Por tema Mariano Cediel
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?.

2005-07-05 Por tema Pablo Braulio
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?.

2005-07-05 Por tema Santiago Vila
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?.

2005-07-05 Por tema Pablo Braulio
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?.

2005-07-05 Por tema Santiago Vila
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?.

2005-07-05 Por tema Pablo Braulio
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