Shell scripts

Hola...
Sabes he estado probando el scripts y pues no funciona creeo que no lo he entendido bn.
Sabes tengo varias dudas la primera radica en la linea de hecho DIA= ' date -d "@$HOY" ' me guarda un valor de 1978 más no la fecha actual... ¿pues otra es la de la captura de los usuarios dentro del ciclo for pues ese obtener_usuario 1 pues no es la clase anterior no lleva () paréntesis o algo así de igual forma se repite para el 31 pues sera por eso que me sale el error?
Gracias...
Sabes acá te dejo mi correo pues no se para poder exponerte mis dudas...
(xxxxxx)
Gracias------

1 respuesta

Respuesta
1
Ese script tal y como está funciona. El echo DÍA no te guarda nada, te escribe por pantalla el día para el cual mostrará los logins según el comando last. El obtener_usuario efectivamente es una función dentro del mismo script, cuando se ejecuta una función no se invoca con paréntesis (a diferencia de otros lenguajes).
En todo caso, si te salen errores, copiarlos y me los dices, concrétame por favor que tipo de errores te dan. En principio debería funcionar sin problemas
siii en teoria yo tambn pienso que funciona, pero ps creeo que sucede esto cuando se guarda el valor de date +%s pues esto me esta convirtiendo la fecha en un entero ps en segundos, pero dicha fecha no resulta ser la actual ps probando en el estudio del script me sale jue mar 23 20:02:46 COT 1978 ps intuyo que esa no es la fecha actual ps esto es cuando al script se le hace el date -d "@$HOY" osea el valor que me arroja el date +%s que seria el valor en segundos de la fecha actual mas no de esa ..ps y asi creeeo que no mostrara nada porq para esa fecha ps no tengo ningun usuario.....
Gracias nuevamente pues loando probando así por partes para ver donde pues puede estar tal ves el error y pues eso es lo que he encontrado hasta ahora... sin embargo pues espero me aclares esa duda...
Gracias de corazón...
¿Qué quiere decir ese "ps" que dices continuamente?
Haz una prueba, ejecuta estas dos sentencias:
HOY=`date +%s`
date -d "@$HOY"
La primera guarda el valor en segundos desde 1970 hasta la fecha actual. La segunda, convierte y escribe en pantalla ese valor en segundos como fecha, debería retornarte la fecha actual
Si no va, todo el script fallará. ¿Qué sistema operativo y versión usas? Recuerdo que en Suse 9.1 la opción "-d" del date no existía...
Hola...
Lo del "ps" es solo una muletilla muy pegajosa... disculpa...
Como te dije anteriormente si se que hace esa parte del script pero lo que te digo es que me muestra la fecha de 1978 y esa no es la fecha actual... aclaro esto porque la verdad no muestra nada y se que lógicamente esta bn pero salen unos errores en la parte donde DIAS=$(($DIAS-1)) y la otra de HOY=$(($HOY-86400)) te digo que es en esa parte donde esta saliendo el error... en la shell bash...
Tengo la version 9.04 de GNU/Linux y acá si aplica la parte del -d como parámetro para el date.
Gracias por tu ayuda...
Entiendo que es una Ubuntu 9.04
Tiene pinta que estás usando el /bin/sh en vez de /bin/bash como te puse en el script. Verifica la primera línea...
En Ubuntu el /bin/sh es un shell limitado, que no entiende correctamente esas líneas que te fallan, en cambio el /bin/bash es completo. En otras distribuciones de linux el /bin/sh y /bin/bash son lo mismo
Hola...
Acá en esta distro tengo muchos diría que demasiados con #!/bin/bash y funcionan de todas formas lo haré para ver que sucede...
Gracias... de todas formas
lo del error en la linea de DIAS=$(($DIAS-1)) y el de HOY=$(($HOY-86400)) es que aca no te puedo enviar la linea de errores exactamente ya que estoy en windows...sin embargo para la proxima te envio las imagenes del error.....
Gracias---

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas