我正在尝试使用 date 和 who 命令编写一个 shell 脚本来打印用户登录的小时数和分钟数。我可以假设它少于 24 小时。我该怎么做?
我想我会以某种方式从 date 命令和 who 命令中提取时间并以某种方式减去它们,但我不确定我将如何实现它。
我正在尝试使用 date 和 who 命令编写一个 shell 脚本来打印用户登录的小时数和分钟数。我可以假设它少于 24 小时。我该怎么做?
我想我会以某种方式从 date 命令和 who 命令中提取时间并以某种方式减去它们,但我不确定我将如何实现它。
#!/bin/bash
export LANG=C
date_string=$(
who |
sort -k3M -k4n |
awk '{if ($1 ~ user) {print $3, $4, $5;exit}}' user="$1"
)
diff_seconds_between_date_and_now=$((
$(date +%s) - $(date -d "$date_string" +%s)
))
printf "%s %s\n" "$((diff_seconds_between_date_and_now/3600)) hours" \
"$((diff_seconds_between_date_and_now%3600/60)) minutes"
我采用指定用户的最旧行:
用法 :
$ bash script.bash <USERNAME>
样本输出:
$ bash script.bash sputnick
528 hours 6 minutes