Skip to main content

Руководство для начинающих BASH - Сравнение вещей

Используем редактор Vim. Минимальный набор команд. Часть 1. (Апрель 2025)

Используем редактор Vim. Минимальный набор команд. Часть 1. (Апрель 2025)
Anonim
01 из 08

Руководство для начинающих BASH - Сравнение вещей

В предыдущей части учебника BASH мы рассмотрели условные утверждения.

Это руководство было очень длинным, но на самом деле только показало, как контролировать поток логики. В этом руководстве показаны различные способы сравнения переменных.

На приведенном выше рисунке показан первый пример в руководстве на этой неделе:

#! / Bin / Башname1 = "Гэри"name2 = "боб"если "$ name1" = "$ name2"затем эхо "совпадение имен"еще echo "имена не совпадают"фи

В приведенном выше сценарии я определил две переменные с именем name1 и name2 и присвоил им значения «gary» и «bob». Поскольку переменные содержатся между кавычками, они называются строковыми переменными, которые становятся более актуальными по мере продолжения учебника.

Весь скрипт сравнивает значение $ name1 и $ name2, и если они соответствуют выходу, строка «имена совпадают», и если они не выводят строку «имена не совпадают».

Кавычки вокруг переменных $ name1 и $ name2 важны, потому что если значение любого из них не было установлено, скрипт будет работать.

Например, если $ name1 никогда не был установлен, вы бы сравнивали «» с «bob». Без кавычек вы останетесь с = «bob», что явно не удастся.

Вы также можете использовать обозначение! = Для определения не равным следующим образом:

если "$ name1"! = "$ name2" 02 из 08

Руководство для начинающих BASH - Сравнение строк

В приведенном выше примере тест сравнивает те же две строки и задает вопрос, идет ли gary перед bob в алфавите?

Ясно, что ответ отрицательный.

Скрипт вводит меньше оператора (<). Поскольку меньше, чем оператор, также используется для перенаправления, вам нужно избегать его с помощью косой черты (), чтобы он имел в виду меньше, чем почему, в приведенном выше скрипте я сравнивал «$ name1» <"$ name2".

Противоположность меньше, чем, очевидно, больше. Вместо использования <use >.

Например

если "$ name1" > "$ name2" 03 из 08

Руководство для начинающих BASH - Сравнение строк

Если вы хотите проверить, имеет ли переменная значение, вы можете использовать следующий тест:

если -n $ name2

В приведенном выше скрипте я тестировал, было ли задано значение $ name2, и если это не сообщение «Нет bob, никогда не появлялось bob».

04 из 08

Руководство для начинающих BASH - Сравнение строк

На прошлой слайде мы рассмотрели, была ли установлена ​​переменная или нет. Иногда, хотя переменная могла быть установлена, но на самом деле она может не иметь значения.

Например:

name1 = ""

Чтобы проверить, имеет ли переменная значение или нет (т. Е. Имеет длину 0), используйте -z следующим образом:

если -z $ name1

В приведенном выше скрипте я установил $ name1 в строку нулевой длины, а затем сравнил его с помощью -z. Если $ name1 равно нулю, будет отображаться сообщение «gary вышло на вечер».

05 из 08

Руководство для начинающих BASH - Сравнение номеров

До сих пор все сравнения были для строк. Как насчет сравнения чисел?

В приведенном выше примере показан пример сравнения двух чисел:

#! / Bin / Баша = 4б = 5если $ a = $ bзатем эхо "4 = 5"еще echo "4 не равно 5"фи

Чтобы установить переменную как число, просто установите ее без кавычек. Затем вы можете сравнить числа с знаком равенства.

Однако я предпочитаю использовать следующий оператор для сравнения двух чисел:

Если $ a -eq $ b 06 из 08

Руководство для начинающих BASH - Сравнение номеров

Если вы хотите сравнить, меньше ли число, чем другое число, вы можете использовать меньше оператора (<). Как и в случае с строками, вам нужно сбежать от оператора с косой чертой. ( <).

Лучшим способом сравнения чисел является использование следующих обозначений:

  • Менее -lt
  • Меньше или равно -le
  • Больше чем -gt
  • Больше или равно -ge

Например:

если $ a -lt $ bесли $ a -le $ bесли $ a -ge $ bесли $ a -gt $ b 07 из 08

Руководство для начинающих BASH - Сравнение номеров

Наконец, для этого руководства, если вы хотите проверить, отличаются ли два числа, вы можете использовать либо меньше, чем больше операторов (<>) или -ne следующим образом:

если $ a <> $ bесли $ a -ne $ b 08 из 08

Руководство для начинающих BASH - Операторы сравнения - Резюме

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

  • Привет, мир
  • Входные параметры
  • Условия и переменные

В следующей части руководства я буду покрывать арифметику.