我正在尝试获取过去5分钟平均负载的四舍五入数值。以下是我的命令:
uptime | awk -F, '{print $5}'|printf "%.0f\n"
看起来不正确,因为它总是给我0。
如果我尝试在awk和printf之间使用变量作为中间变量,那么就是正确的。
avgload=$(uptime | awk -F, '{print $5}')
printf "%.0f\n" $avgload
第一次尝试有什么问题吗?
谢谢和问候!
更新:
为了获取过去5分钟的平均负载,这是我在Linux服务器(Kubuntu)上使用uptime命令的输出:
$ uptime
13:52:19 up 29 days, 18 min, 15 users, load average: 10.02, 10.04, 9.58
我的笔记本电脑(Ubuntu)上也是类似的:
`$ uptime
13:53:58 up 3 days, 12:02, 8 users, load average: 0.29, 0.48, 0.60 `
这就是为什么我选取第五个字段的原因。
awk
来进行格式化。它内置了printf
函数。 - Dennis Williamson$(NF-1)
而不是$5,因为对于较短的正常运行时间,日期和时间信息的格式不同。 - Dennis Williamson