Hola compañeros de la shell,
En esta corta entrada ampliaremos lo comentado en la entrada Fechas en GNU/Linux y Solaris centrándonos en realizar operaciones básicas de conversión de fechas en segundos y viceversa para poder tomar tiempos en nuestros scripts con facilidad.
Conversión segundos a formato (%H:%M:%S):
$date -d@$3661 +%H:%M:%S
01:11:01
Conversión formato (%Y-%m-%d %H:%M:%S) a segundos:
$date --date "2022-05-07 21:22:55" +%s
1651951375
A continuación snippet de código para obtener tiempos de ejecución:
INICIO=`date +'%Y-%m-%d %H:%M:%S'`
# Comienza la ejecución del programa (ejemplo, sleep de 11 segundos)
sleep 11
# Fin de la ejecución del programa (ejemplo, sleep de 11 segundos)
FIN=`date +'%Y-%m-%d %H:%M:%S'`
SEGUNDOS_INICIO=`date --date "$INICIO" +%s`
SEGUNDOS_FIN=`date --date "$FIN" +%s`
TIEMPO_TOTAL_SEGUNDOS=`echo "$SEGUNDOS_FIN-$SEGUNDOS_INICIO" | bc`
TIEMPO_TOTAL_H_M_S=`date -d@${TIEMPO_TOTAL_SEGUNDOS} -u +%H:%M:%S`
echo $TIEMPO_TOTAL_H_M_S
00:00:11
Espero que os sirva.
Nos vemos al otro lado de la pantalla negra.
P.D.: Thx to P.F.S.
