Linux и UNIX: программирование в shell. Руководство разработчика
вернуться

Тейнсли Дэвид

Шрифт:

test "строка"

test оператор_строки "строка"

test "строка" оператор_строки "строка"

[ оператор_строки строка ]

[ строка оператор_строки строка ]

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

== Две строки равны

!= Две строки не равны

– z Эта строка нулевая

– n Эта строка не является нулевой

Чтобы проверить, присвоено ли переменной среды editor нулевое значение, примените команду:

$ [ -х $EDITOR ]

$ echo $?

1

Ответ отрицательный. Присвоено ли этой переменной значение vi?

$ [ $EDITOR= "vi" ]

$ echo $?

0

Ответ утвердительный. Отобразим это значение на экране:

$ echo $EDITOR

vi

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

$ TAPE="/dev/rmt0"

$ TAPE2="/dev/rmt1"

$ [ "$TAPE" = "$ТАРЕ2" ]

$ echo $?

1

Ответ отрицательный. При присваивании переменных необязательно применять двойные кавычки. Но при сравнении строк использование двойных кавычек является непременным условием.

Чтобы проверить "неравенство" переменных таре и таре2, примените следующую команду:

$ [ »$TAPE" != "$ТАРЕ2" ]

$ echo $?

0

Значения этих переменных не равны.

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

17.5. Применение команды expr

Команда expr используется в основном для проверки целочисленных значений, но может применяться также и при обработке строк. Общий формат команды expr:

expr аргумент оператор аргумент

Команду expr удобно использовать для подсчета количества строк:

$ expr 10 + 10

20

$ expr 900 + 600

1500

$ expr 30/3

10

$ expr 30/3/2

5

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

$ expr 30 \*.3

90

17.5.1. Приращение переменной цикла

  • Читать дальше
  • 1
  • ...
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • ...

Private-Bookers - русскоязычная библиотека для чтения онлайн. Здесь удобно открывать книги с телефона и ПК, возвращаться к сохраненной странице и держать любимые произведения под рукой. Материалы добавляются пользователями; если считаете, что ваши права нарушены, воспользуйтесь формой обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • help@private-bookers.win