【发布时间】:2019-06-12 13:52:41
【问题描述】:
所以不久前我一直在试验 Bash,我想操纵“uptime”命令的输出。例如,如果正常运行时间为 5 分钟,我设法将 up x 分钟的输出更改为 0:05,但其余的东西都消失了。
我应该使用什么方法来显示时间、用户数量及其平均负载,而不影响我当前的正常运行时间输出。
这是所需的输出:21:08:13 up 0:10,3 个用户,平均负载:0.30、0.30、0.25
任何帮助将不胜感激!
since="`uptime --since`"
start="`date --date "$since" '+%s'`"
now="`date '+%s'`"
sec=$((now-start))
days=$((sec/(60*60*24)))
sec=$((sec-days*(60*60*24)))
hr=$((sec/(60*60)))
sec=$((sec-hr*(60*60)))
min=$((sec/60))
sec=$((sec-min*60))
rest="$(uptime | perl -npe'{s/(.*,\s+)(\d+\s+user)/$2/}')"
printf "%d(days), %02d:%02d:%02d(hms), %s\n" $days $hr $min $sec "$rest"
电流输出
0(days), 00:34:00(hms), 3 users, load average: 0.09, 0.14, 0.14
【问题讨论】: