¿Cómo comparar dos cadenas de DateTime y la diferencia de devolución en horas? (shell bash)

Puedo hacer eso en php con el siguiente código:

$dt1 = '2011-11-11 11:11:11'; $t1 = strtotime($dt1); $dt2 = date('Ymd H:00:00'); $t2 = strtotime($dt2); $tDiff = $t2 - $t1; $hDiff = round($tDiff/3600); 

$hDiff me dará el resultado en horas.

¿Cómo implemento lo anterior en Bash Shell?

Puede usar el comando de date para lograr esto. man date le proporcionará más detalles. Un script bash podría ser algo en estas líneas (parece funcionar bien en Ubuntu 10.04 bash 4.1.5):

 #!/bin/bash # Date 1 dt1="2011-11-11 11:11:11" # Compute the seconds since epoch for date 1 t1=`date --date="$dt1" +%s` # Date 2 : Current date dt2=`date +%Y-%m-%d\ %H:%M:%S` # Compute the seconds since epoch for date 2 t2=`date --date="$dt2" +%s` # Compute the difference in dates in seconds let "tDiff=$t2-$t1" # Compute the approximate hour difference let "hDiff=$tDiff/3600" echo "Approx hour diff b/w $dt1 & $dt2 = $hDiff" 

¡Espero que esto ayude!