Exibir o tempo registrado por hora(s) e minuto(s)

Exibir o tempo registrado por hora(s) e minuto(s)

Estou escrevendo um script para exibir há quanto tempo um usuário está logado.

who | grep "$userid" | awk '{print $1,$3,$4}' | while read user time; do \echo $(($(($(date +%s) - $(date -d "$time" +%s)))/60)) minutes; done

Como posso fazer essa exibição de horas e minutos? A partir de agora, ele exibe apenas minutos. Preciso que ele exiba, por exemplo, 1 hora(s) e 45 minuto(s) com o(s) incluído(s).

Responder1

Usando data GNU

who | grep "$userid" | awk '{print $1,$3,$4}' | while read user time; do echo -n "$user  ";eval "echo $(date -ud "@$(($(($(date +%s) - $(date -d "$time" +%s)))))" +'$((%s/3600/24)) days %H hours %M minutes %S seconds')"; done  

Cortesia: Exibindo segundos como dias/horas/minutos/segundos?

informação relacionada