我正在尝试获取过去 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<br/>
13:52:19 up 29 days, 18 min, 15 users, load average: 10.02, 10.04, 9.58
在我的笔记本电脑 (Ubuntu) 上是类似的
`$ 正常运行时间
13:53:58 up 3 days, 12:02, 8 users, load average: 0.29, 0.48, 0.60 `
这就是我选择第 5 个字段的原因。
最佳答案
正常运行时间输出中的第 5 个逗号分隔字段不存在(至少在我的系统上),这就是为什么你总是得到零。 5 分钟的正常运行时间是倒数第二个字段,因此它有效:
uptime | awk '{printf "%.0f\n",$(NF-1)}'
关于bash - bash 中的 awk 和 printf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1505063/