На самом деле это единственный раздел про unix на этом форуме
Модераторы: /dev/random , Модераторы разделов
spool
Сообщения: 126
ОС: CentOS 6.6
Сообщение
spool » 14.03.2015 13:18
Здравствуйте. Написал скрипт, который должен проверять 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 пробовал в кавычках, но результат тот же. Подскажите, пожалуйста, что я сделал не так.
spool
Сообщения: 126
ОС: CentOS 6.6
Сообщение
spool » 14.03.2015 14:13
Bizdelnick
Я прекрасно знаю, что такое integer. Но как тогда можно сравнить дробные числа?
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64
Сообщение
NickLion » 14.03.2015 15:29
В bash'е — никак. Можно использовать bc.
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL
Сообщение
SLEDopit » 14.03.2015 21:23
spool писал(а): ↑ 14.03.2015 13:18
uptime | awk '{print $10}' | sed 's/[ ,]*$//'
можно заменить на
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
Контактная информация:
Сообщение
drBatty » 16.03.2015 11:26
spool писал(а): ↑ 14.03.2015 14:13
Но как тогда можно сравнить дробные числа?
умножить их на 10⁶, не?
т.е. часть перед точкой надо умножить на 10⁶, а потом прибавить 10⁶ делённое на часть после точки, при необходимости доведя эту часть до 6и цифр.
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64
Сообщение
NickLion » 16.03.2015 11:53
drBatty
Как по мне заюзать bc проще. Да, его может не быть, но если не нужен универсальный скрипт, то вполне подходящее решение.
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:
Сообщение
drBatty » 17.03.2015 10:54
NickLion писал(а): ↑ 16.03.2015 11:53
Как по мне заюзать bc проще.
по мне тоже. Просто ваше "никак" в данном случае не совсем правильно, bash работает с числами до 9`223`372`036`854`775`807, потому 6 десятичных знаков после точки вполне осилит. Обычно больше и не нужно.
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64
Сообщение
NickLion » 17.03.2015 11:09
drBatty
Согласен, просто когда говорил "никак" думал только о встроенный вариантах без велосипедов с приведением к целым или строкам.
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:
Сообщение
drBatty » 17.03.2015 12:16
ну в данном случае bc конечно более годный вариант.