Отображать полный путь в строке заголовка редактора nano.

Вывод uptimeвключает несколько полей с переменным количеством пробелов. cutрассматривает каждый пробел как разделитель полей, поэтому изменение некоторых из этих значений будет означать, что ваш cutвыводит совершенно другое число.

Например, количество пользователей дополняется пробелом -. Когда меньше 10, есть два пробела; когда 10 и более, только 1.

$ echo ' 23:17:01 up 38 days, 38 min,  8 users,  load average: 0.00, 0.00, 0.00'|cut -d ' ' -f13
average:
$ echo ' 23:17:01 up 38 days, 38 min, 10 users,  load average: 0.00, 0.00, 0.00'|cut -d ' ' -f13
0.00,

Вместо этого вы можете использовать awk, который допускает различное количество пробелов между каждым полем (и игнорирует пробел в начале строки):

$ echo ' 23:17:01 up 38 days, 38 min,  8 users,  load average: 0.00, 0.00, 0.00' | awk '{print $11}'

Но это все еще может сломаться, если изменится количество самих «слов», например. когда само время безотказной работы не (только )дней и минут:

 14:51:24 up 4 min,  1 user,  load average: 0.17, 0.16, 0.07
 14:52:09 up 6 days, 21:58, 11 users,  load average: 0.79, 0.84, 0.82

Таким образом, другие знаки препинания в строке, запятые и двоеточия, также могут изменяться и не помогают найти нужные вам числа.

Вы можете использовать grep -o...для извлечения только слов, начиная с load average:, и извлекать из них правильное слово. Но было бы намного проще полностью прекратить синтаксический анализ вывода uptimeи вместо этого извлечь среднюю загрузку из /proc/loadavg, если в вашей ОС есть такой файл :

.
$ cat /proc/loadavg
1.01 0.91 0.85 1/793 24545

Если вам нужно только первое число, игнорируя десятичные дроби, вы можете сделать это с помощью одногоcut:

$ cut -d. -f1 /proc/loadavg
1
1
28.05.2020, 01:02
0 ответов

Теги

Похожие вопросы