Проверка LA

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Ответить
spool
Сообщения: 126
ОС: CentOS 6.6

Проверка LA

Сообщение spool »

Здравствуйте. Написал скрипт, который должен проверять LA за 5 мин и выполнять некоторые действия.

Код: Выделить всё

#!/bin/bash
la=$(uptime | awk '{print $10}' | sed 's/[ ,]*$//')

if [ $la -ge 2.5 ];
then
echo $la
fi


Но получаю
integer expression expected

$la и 2.5 пробовал в кавычках, но результат тот же. Подскажите, пожалуйста, что я сделал не так.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Проверка LA

Сообщение Bizdelnick »

Подсказать более подробно, чем в сообщении об ошибке, вряд ли возможно.
http://www.multitran.ru/c/m.exe?CL=1&s=integer&l1=1
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
spool
Сообщения: 126
ОС: CentOS 6.6

Re: Проверка LA

Сообщение spool »

Bizdelnick
Я прекрасно знаю, что такое integer. Но как тогда можно сравнить дробные числа?
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Проверка LA

Сообщение NickLion »

В bash'е — никак. Можно использовать bc.
Спасибо сказали:
spool
Сообщения: 126
ОС: CentOS 6.6

Re: Проверка LA

Сообщение spool »

NickLion
Благодарю. Теперь все работает.
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Проверка LA

Сообщение SLEDopit »

spool писал(а):
14.03.2015 13:18
uptime | awk '{print $10}' | sed 's/[ ,]*$//'
можно заменить на

Код: Выделить всё

cut -f2 -d' ' /proc/loadavg

UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Проверка LA

Сообщение drBatty »

spool писал(а):
14.03.2015 14:13
Но как тогда можно сравнить дробные числа?

умножить их на 10⁶, не?

т.е. часть перед точкой надо умножить на 10⁶, а потом прибавить 10⁶ делённое на часть после точки, при необходимости доведя эту часть до 6и цифр.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Проверка LA

Сообщение NickLion »

drBatty
Как по мне заюзать bc проще. Да, его может не быть, но если не нужен универсальный скрипт, то вполне подходящее решение.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Проверка LA

Сообщение drBatty »

NickLion писал(а):
16.03.2015 11:53
Как по мне заюзать bc проще.

по мне тоже. Просто ваше "никак" в данном случае не совсем правильно, bash работает с числами до 9`223`372`036`854`775`807, потому 6 десятичных знаков после точки вполне осилит. Обычно больше и не нужно.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Проверка LA

Сообщение NickLion »

drBatty
Согласен, просто когда говорил "никак" думал только о встроенный вариантах без велосипедов с приведением к целым или строкам.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Проверка LA

Сообщение drBatty »

ну в данном случае bc конечно более годный вариант.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Ответить