Я пытаюсь получить округленное число средней нагрузки за последние 5 минут. Так вот идет моя команда:awk и printf в bash
uptime | awk -F, '{print $5}'|printf "%.0f\n"
кажется неправильным, как это всегда дает мне 0.
Если я пытался использовать переменную в качестве промежуточного между AWK и Printf, то это правильно
avgload=$(uptime | awk -F, '{print $5}')
printf "%.0f\n" $avgload
Так что что-то не так с моей первой попытки?
Спасибо и приветствую!
UPDATE:
Просто для получения средней нагрузки за последние 5 минут, вот выход безотказной работы на моем Linux Server (Kubuntu)
$ uptime
13:52:19 up 29 days, 18 min, 15 users, load average: 10.02, 10.04, 9.58
На моем ноутбуке (Ubuntu) она подобна
`$ аптайм
13:53:58 до 3-х дней, 12:02, 8 пользователей, средней загрузки: 0,29, 0,48, 0,60`
Именно поэтому я принимаю 5-е поле.
Обратите внимание, что проблема в том, что Printf не принимает входной параметр таким образом. Вам нужно будет использовать xargs или backticks, как указано в различных решениях ниже. –
Нет, просто используйте 'awk' для форматирования. Он имеет 'printf'. –
Таким образом, uptime | awk -F, '{printf"% 0.f \ n ", $ 5}'. –