ユーザーがログインしたときに表示するスクリプトを作成しています。
who | grep "$userid" | awk '{print $1,$3,$4}' | while read user time; do \echo $(($(($(date +%s) - $(date -d "$time" +%s)))/60)) minutes; done
このショーの時間と分をどのように作成できますか?今は分だけ表示されます。たとえば、(s)を含む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
礼儀正しい: 秒を日/時/分/秒で表示しますか?