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

Чтобы проверить, установлено ли право записи для файла scores.txt, применяются оба метода проверки. При осуществлении проверки используется код завершения последней команды. Не забывайте о том, что возвращаемое нулевое значение свидетельствует о том, что условие выполняется, любое другое значение говорит о наличии ошибки.

$ ls -l scores.txt

-rw‑r—г -l dave admin 0 May 15 11:29 scores.txt

$ [ -w scores.txt ]

$ echo $?

0

$ test -w scores.txt

$ echo $?

0

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

$ [ -х scores.txt ]

$ echo $?

1

Нет, не является, что и следовало ожидать после изучения списка прав доступа для файла scores.txt.

В следующем примере проверяется существование каталога appsbin.

drwxr‑xr‑x 2 dave admin 1024 May 15 15:53 appsbin

$ [ -d appsbin ]

$ echo $?

0

Ответ утвердительный, каталог appsbin присутствует. Чтобы проверить, установлен ли бит suid, примените:

-rwsr‑x--- 1 root root 28 Apr 30 13:12 xab

$ [ -u xab ]

$ echo $?

0

Из этого примера следует, что бит suid установлен.

17.2. Применение логических операторов при осуществлении проверки

Итак, проверка прав доступа к файлу была осуществлена, но иногда возникает необходимость в сравнении различных прав доступа. Чтобы реализовать подобную проверку интерпретатор shell предлагает три типа логических операторов;


-aЛогическое AND, возвращает истину, если обе части оператора принимают истинное значение
-oЛогическое OR, возвращает истину, если какая‑либо из частей оператора может принимать истинное значение
!Логическое NOT, возвращает истину, если условие ложно

А теперь выполним сравнение следующих файлов:

-rw‑r--r-- 1 root root 0 May 15 11:29 scores.txt

-rwxr‑xr—- 1 root root 0 May 15 11:49 results.txt

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

$ [ -w results.txt -a -w scores.txt ]

$ echo $?

0

Ответ звучит утвердительно.

Чтобы проверить, установлены ли для какого‑либо из файлов права выполнения, воспользуйтесь логическим оператором OR.

$ [ -х results.txt -о -x scores.txt ]

$ echo $?

0

Файл scores.txt не является исполняемым, а файл results.txt — исполняемый. Чтобы проверить, установлены ли для файла results.txt права записи и выполнения, примените следующую команду:

$ [ -w results.txt -a -x results.txt ]

$ echo $?

0

В данном случае получается утвердительный ответ.

17.3. Проверка строк

Проверка строк является важным этапом при отслеживании ошибок. Значение этого этапа повышается, если проверяются вводимые пользователями данные либо выполняется сравнение переменных. Чтобы проверить строки, достаточно выбрать один из пяти форматов.

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

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

Перейти на страницу:

Похожие книги

Библия БДСМ. Полное руководство
Библия БДСМ. Полное руководство

Первое исчерпывающее пособие по БДСМ. Уникальный иллюстрированный гид для тех, кому просто любопытно, и для тех, кто уже в Теме. В этой книге известные педагоги и профессионалы ответили на все важные вопросы и раскрыли все интересующие вас темы: основные принципы, ролевые игры, господство, подчинение, фистинг, садизм, мазохизм, связывание, физическое воздействие, тантра необычного секса и многое другое. Если вы хоть раз задумывались о БДСМ, значит, эта книга то, что вам нужно. Она способна обучить, вдохновить и бросить вызов даже опытным игрокам. Не бойтесь экспериментировать, и добро пожаловать в мир сексуальных приключений!

Тристан Таормино , Литагент «5 редакция»

Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература / Руководства / Дом и досуг / Образовательная литература / Словари и Энциклопедии
Путь менеджера от новичка до гуру
Путь менеджера от новичка до гуру

«Путь менеджера» – это сборник лучших материалов online-сообщества (learning community) менеджеров E-xecutive за пять лет (2001–2005), которые впервые публикуются offline. Возможно, это книга с самым большим количеством авторов: 20 сотрудников E-xecutive и более 200 участников Сообщества писали, выбирали и редактировали материалы.Книга представляет собой «карту местности» для менеджера, стремящегося найти кратчайший путь к успеху, на которой отображены открытия лучших «картографов» – всемирно признанных бизнес-гуру и успешных российских топ-менеджеров. Эта книга о том, чем в действительности живут менеджеры, о чем не пишут в учебниках, и предназначается она для тех, кто стремится не только к карьерному успеху, но и к настоящей эффективности, личностному и профессиональному развитию.

Сообщество менеджеров E-xecutive

Руководства / Словари и Энциклопедии