Anzeige der angemeldeten Zeit in Stunden und Minuten

Anzeige der angemeldeten Zeit in Stunden und Minuten

Ich schreibe ein Skript, um anzuzeigen, wie lange ein Benutzer angemeldet ist.

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

Wie kann ich dafür sorgen, dass Stunden und Minuten angezeigt werden? Momentan werden nur Minuten angezeigt. Ich brauche beispielsweise 1 Stunde(n) und 45 Minuten (einschließlich der Minuten).

Antwort1

Verwenden von GNU Date

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  

Anstand : Sekunden als Tage/Stunden/Minuten/Sekunden anzeigen?

verwandte Informationen