17.4. Проверка чисел

17.4. Проверка чисел

Для сравнения чисел можно воспользоваться операторами другого рода. Общий формат:

"число" числовой_оператор "число" или

[ "число" числовой_оператор "число" ]

где в качестве выражения числовой_оператор могут фигурировать следующие операторы:

-eq Два числа равны
-ne Два числа не равны
-gt Первое число больше второго числа
-lt Первое число меньше второго числа
-le Первое число меньше или равно второму числу
-gt Первое число больше или равно второму числу

Выясним, равно ли одно число другому (в данном случае рассматривается, равно ли число 130 числу 130):

$ NUMBER=130

$ [ "$NUMBER" -eq "130" ]

$ echo $?

0

Превосходно! Результатом сравнения явилось значение "истина". Теперь изменим второе число и проверим, отобразится ли сообщение об ошибке. Возвращается значение 1 (130 не равно 100(.

$ [ "$NUMBER" —eq "100" ] $ echo $?

1

Чтобы проверить, является ли число 130 больше числа 100, воспользуйтесь следующей командой:

$ [ "$NUMBER" —gt "100" ]

$ echo $?

0

Ответ утвердительный.

Так же можно проверять два целых значения переменных. Ниже уточняется, будет ли значение переменной DEST_COUNT большим, чем значение переменной SOURCE_COUNT.

$ SOURCE_COUNT=13

$ DEST_COUNT-15

$ [ "$DEST_COUHT" -gt "$SOURCE_COUNT" ]

$ echo $?

0

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

$ [ "990" -le "995" ] $ echo $?

0

Можно также комбинировать и тестировать выражения с помощью логических операторов. При этом следует пользоваться только одной парой квадратных скобок — не применяйте две пары скобок. Если не учитывать этого замечания, отобразится сообщение об ошибке — "too many arguments" (слишком много аргументов):

$ [ "990" -le "995" ] —а [ "123" —gt "33" ]

sh:[: too many arguments

В следующем примере проверяются два выражения. Если оба выражения истинны, результат будет истинным. Ниже приводится корректный метод выполнения проверки.

$ [ "990" -le "995" -a "123" -gt "33" ] $ echo $?

0

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Формат чисел

Из книги автора

Формат чисел Наконец-то добрались до формата чисел. Я уже не раз о нем упоминала, теперь разложу все по полочкам (хотя общий смысл вы уже могли понять).Числа в Excel могут отображаться в различных форматах. В этом разделе мы поговорим о том, какие существуют форматы чисел и как


3. Представление чисел в ЭВМ

Из книги автора

3. Представление чисел в ЭВМ 32-разрядные процессоры могут работать с оперативной памятью емкостью до 232-1, а адреса могут записываться в диапазоне 00000000 – FFFFFFFF. Однако в реальном режиме процессор работает с памятью до 220-1, а адреса попадают в диапазон 00000 – FFFFF. Байты памяти


5.28. Генерирование случайных чисел

Из книги автора

5.28. Генерирование случайных чисел Если вас устраивают псевдослучайные числа, вам повезло. Именно они предоставляются в большинстве языков, включая и Ruby.Метод rand из модуля Kernel возвращает псевдослучайное число x с плавающей точкой, отвечающее условиям x >= 0.0 и x < 1.0.


3.2. Преобразование чисел в строки

Из книги автора

3.2. Преобразование чисел в строки ПроблемаИмеются числовые типы (int, float), и вам требуется поместить их содержимое в string, возможно, предварительно отформатировав.РешениеДля выполнения этого имеется множество способов, каждый из которых имеет свои достоинства и недостатки.


11.6. Генерация случайных чисел

Из книги автора

11.6. Генерация случайных чисел ПроблемаТребуется сгенерировать несколько случайных чисел в формате с плавающей точкой в интервале значений [0.0, 1.0) при равномерном их распределении.РешениеСтандарт C++ предусматривает наличие C-функции библиотеки этапа исполнения rand,


13.2. Запись и чтение чисел

Из книги автора

13.2. Запись и чтение чисел ПроблемаТребуется записать число в поток в форматированном виде в соответствии с местными соглашениями.РешениеЗакрепите (imbue) текущую локализацию за потоком, в который вы собираетесь писать данные, и запишите в него числа, как это сделано в


Преобразования чисел

Из книги автора

Преобразования чисел В случае встроенных числовых типов (sbyte, int, float и т.д.) явное преобразование требуется тогда, когда вы пытаетесь сохранить большее значение в меньшем контейнере, поскольку при этом может происходить потеря данных. По сути, это способ сказать


СОРТИРОВКА ЧИСЕЛ

Из книги автора

СОРТИРОВКА ЧИСЕЛ      Одним из наиболее распространенных тестов для машин является сортировка. Мы хотим разработать программу для сортировки целых чисел. Снова применим принцип черного ящика и подумаем в терминах ввода и вывода. Наш общий замысел, показанный на рис. 10.4,


Сортировка текста как чисел

Из книги автора

Сортировка текста как чисел Данная функция предотвращает получение неожиданных результатов сортировки, автоматически определяя смешанные списки и сортируя текстовые значения как


Генерация случайных чисел

Из книги автора

Генерация случайных чисел Прежде всего, давайте опишем, что мы понимаем под случайным числом (random number). Без четкого определения термина мы будем неуверенно себя чувствовать при разработке и реализации генератора случайных чисел.Будет ли число 2 случайным числом? Просто


Форматирование чисел

Из книги автора

Форматирование чисел Мы уже познакомились с функцией языка XPath string, которая конвертирует свой аргумент в строку. Эта функция может преобразовать в строку и численное значение, но возможности ее при этом сильно ограничены.К счастью, XSLT предоставляет мощные возможности


2.3. Представление чисел в компьютере

Из книги автора

2.3. Представление чисел в компьютере Числовые данные обрабатываются в компьютере в двоичной системе счисления. Числа хранятся в памяти компьютера в двоичном коде, т. е. в виде последовательности нулей и единиц, и могут быть представлены в формате с фиксированной или


Обработка чисел

Из книги автора

Обработка чисел Так как программа Excel предназначена для обработки чисел, важную роль играет правильная настройка их формата. Для человека число 10 – это просто единица и ноль. С точки зрения Excel эти две цифры могут нести совершенно разную информацию в зависимости от того,