2012-06-13 10 views
5

Bien, esta es probablemente una pregunta muy básica; pero, estoy volviendo a estar en la silla de montar con Linux.Obteniendo fecha de lectura humana de Epoch en la variable

Tengo una variable que contiene un tiempo de Época llamado pauseTime. Necesito esa variable para ser legible para los humanos (algo así como 2012-06-13 13:48:30).

sé que sólo puede escribir en

date -d @133986838 //just a random number there 

y que va a imprimir algo similar. Pero necesito conseguir que la variable contenga esa fecha legible para los humanos, en lugar de la hora de la época ... Sigo teniendo errores con todo lo que intento. ¿Alguna idea sobre cómo puedo hacer esto?

Respuesta

7

bien hacer esto:

VARIABLENAME=$(date -d @133986838) 

y luego

export VARIABLENAME 

o en Bash ver directamente:

export VARIABLENAME=$(date -d @133986838) 

Si desea dar formato, por ejemplo en el formato ISO habitual:

export ISODATE=$(date -d @133986838 +"%Y-%m-%d %H:%M:%S") 
# or 
EPOCHDATE=133986838 
export ISODATE=$(date -d @$EPOCHDATE +"%Y-%m-%d %H:%M:%S") 

Los formatos detrás de + se explican en man date.

Nota: $() es la forma moderna de los backticks. Es decir. capturando el resultado de un comando en una variable. Sin embargo, $() hace que algunas cosas sean más fáciles, sobre todo las reglas de escape dentro de ella. Así que siempre deberías preferirlo más que los backticks si tu shell lo entiende.

+0

Gracias, había intentado algo similar ... Pero, siguiendo el tuyo, me di cuenta de que nunca borraba la variable al final de mi ciclo. Causando el error en el próximo pase. Gracias, eso resuelve mi problema. – W3BGUY

+1

¿por qué recomienda que exporte la variable? – jordanm

+0

¿Por qué está exportando la variable? Estoy casi seguro de que no es necesario. ¿El proceso de un niño necesita verlo? Esa sería la única razón para hacerlo. Algunas personas hacen esto habitualmente y no deberían hacerlo. –

Cuestiones relacionadas