“Conocimiento Sistemas>unix

Cómo encontrar Diferencia horaria en Unix Script

2016/5/23
Si usted necesita para encontrar la diferencia entre dos horas , si la diferencia es de sólo unos pocos segundos, o años , usted puede hacer esto en la versión GNU de Unix con el comando "date" . Sin embargo , el procedimiento no es intuitivo , ya que el comando date no proporciona directamente una bandera o argumento a favor de este procedimiento. Además , existen varias versiones del comando date en Unix . Tenga en cuenta que lo que funciona en la versión GNU del comando date no funcionará con la versión de BSD . Unix Epoch

La clave para resolver este problema es entender cómo el equipo realmente mantiene la noción del tiempo . Una computadora Unix almacena todo momento como el número de segundos que han transcurrido desde el Epoch Unix . El Unix Epoch es la medianoche del 1 de enero de 1970.
Obtener los segundos desde el Epoch Unix

Usted puede obtener el número de segundos desde el Epoch Unix a un determinado fecha usando una combinación de la bandera "+ % s " y " - Fecha " de comandos. Escriba lo siguiente en una shell para obtener el número de segundos desde el Epoch Unix al 11 de marzo de 2011:
fecha

- Fecha 2011-03-11 + % s

El resultado será : 1299823200 . Se puede utilizar cualquier formato de fecha y hora que se puede analizar mediante el comando "date" en este script. Puede escribir " man date " en su shell para leer sobre todos los formatos de fecha válidos.
La solución

puede tomar cualquier fecha o dado vez en un formato compatible con Unix y lo convierten en el segundo antes o desde el Epoch Unix , se puede ver la diferencia entre dos tiempos restando los resultados de dos de estos comandos.

Escriba los siguientes comandos en la shell:

d1 = `date - Fecha 2011-03-11 + % s `

d2 = `date - Fecha 2010-05-12 + % s `
< p > echo "$ ((( d1 -d2 ))) segundo diferencia "

En las dos primeras líneas , el carácter ' no es un símbolo de comillas . Es una copia de garrapata. Usted puede localizar a este personaje a la izquierda de la tecla " 1 " en un teclado estándar de EE.UU. .

La salida debería ser la diferencia entre los dos tiempos en segundos . Si usted necesita, usted puede convertir esto en minutos , horas, días , y así sucesivamente dividiendo por el número de segundos en un minuto , minuto en una hora o hora en un día.
Un script

sería una molestia que escribir esos tres comandos largos cada vez, usted debe encapsular en un script. ! Abre tu editor de texto favorito y pega el siguiente :

# /usr /bin /env golpe

d1 = `date - fecha $ 1 + % s `

d2 = `date - fecha de $ 2 + % s `

echo "$ ((( d1 -d2 ))) segundo diferencia "

cambia algunas cosas. La línea superior permite que el shell actual saben que cree este script para usar el lenguaje de la cáscara " fiesta " . A medida que cambie las fechas de los dos comandos de fecha por "$ 1" y "$ 2 ", podrá aprobar nuevas fechas para la secuencia de comandos cada vez que se ejecuta . Una vez más , en las dos primeras líneas , se utiliza la parte de atrás -tick ' , ni una sola cita .

Guardar la secuencia de comandos con el nombre " timediff.sh " y ejecute el comando "chmod + x timediff.sh . " en la shell de Unix dejar saber que tiene permiso para ejecutar este como un script

Después de hacer esto , se puede ver la diferencia entre dos fechas y horas escribiendo:

. /timediff.sh 09/13/2010 14/01/1981

unix
¿Qué símbolo indica un archivo vinculado en Linux?
¿Qué es una pestaña de comando?
¿Cuáles son los diferentes tipos de almacenamiento en búfer en Unix?
¿Cuál es la diferencia entre y como se define en MIL-STD-2167A?
¿Qué es la sincronización en Unix?
¿Qué es el comando de ping de computadora?
¿Cómo interactúa el sistema operativo con el programa?
¿Qué comando muestra todos los sistemas de archivos y la cantidad de datos utilizados por cada uno?
Conocimiento de la computadora © http://www.ordenador.online