Отображение времени входа в систему по часам и минутам

Отображение времени входа в систему по часам и минутам

Я пишу скрипт для отображения времени, в течение которого пользователь находится в системе.

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

Как сделать так, чтобы это отображало часы и минуты? На данный момент оно отображает только минуты. Мне нужно, чтобы оно отображало, например, 1 час(а) и 45 минут(ы) с включенными (s).

решение1

Использование даты 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  

Учтивость : Отображение секунд в формате дней/часов/минут/секунд?

Связанный контент