#!/bin/bash # lapso expresa en dias, horas, minutos y segundos un valor dado en segundos. # Permite expresar en un formato más legible valores grandes en segundos como # por ejemplo la diferencia entre dos timestamps de unix. # Uso: # $ ./lapso 22222222 # $ 257 d, 4 h, 50 mn, 22 s. # Uso: # pasado=1155237474 # presente=`date "+%s"` # lapso=`./lapso $((b-a))` # lapso forma parte de la familia Ofuscada, rama Poquilinea, lat. Poquilineaceas Ofuscatis. # lapso 0.8 es compatible con bash versiones 2 y 3, resuelta la # incompatibilidad en las expresiones regulares. # GNU General Public License. # sebb@sebb.info 2006 set -e&&clear&&version=0.8&&lapso=$1&&[ "$1" = "-v" ]&&echo -e "\n\tlapso versión $version\n\tPoquilineaceas Ofuscatis.\n\sebb@sebb.info"&&exit 0||\[ "$1" = "-h" ]&&echo -e "\n\tlapso expresa en días, horas, minutos y segundos un valor dado en segundos.\n\tlapso v. $version - Poquilineaceas Ofuscatis.\n\tEste script permite expresar valores grandes en segundos en un formato más legible.\n\tEjemplo de uso: la diferencia entre dos timestamps de unix se da en segundos.\n\t\n\t$./lapso 22222222\n\t$ 257 d, 4 h, 50 mn, 22 s.\n"&&exit 0||[ "$#" = "1" ]&&[ "${BASH_VERSINFO[0]}" -ge "3" ]&&eval "[[ '$lapso' =~ '[A-Za-z]|[[:punct:]]|[[:blank:]]' ]]&&status=1"||s=`echo $lapso | egrep -q '[A-Za-z]|[[:punct:]]|[[:blank:]]'`&&[ "$?" = "0" ]&&status=1 ; ([ "$#" = "1" ]&&[ "$lapso" != "" ]&&[ "$status" != "1" ])&&([ "$lapso" -gt "86400" ]&&dias="$((lapso/86400)) d,"&&lapso=$((lapso%86400)) ; [ "$lapso" -ge "3600" ]&&horas="$((lapso/3600)) h,"&&lapso=$((lapso%3600)) ; [ "$lapso" -ge "60" ]&&minutos="$((lapso/60)) mn," ; segundos="$((lapso%60)) s." ; echo $dias $horas $minutos $segundos||echo `[ "$lapso" -le "1" ]&&echo $lapso segundo.||echo "$lapso segundos."` )||(echo -e "\n\tlapso versión $version\n\tSe debe dar como argumento un nmero entero positivo.\n\tUse -h para ver la ayuda y -v para ver la versión.\n"&&exit 1) # FIN