로그인된 시간을 시, 분 단위로 표시

로그인된 시간을 시, 분 단위로 표시

사용자가 로그인한 시간을 표시하는 스크립트를 작성 중입니다.

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분을 포함하여 표시해야 합니다.

답변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  

예의: 초를 일/시간/분/초로 표시하시겠습니까?

관련 정보