Читаем 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 установлен.

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

Итак, проверка прав доступа к файлу была осуществлена, но иногда возникает необходимость в сравнении различных прав доступа. Чтобы реализовать подобную проверку интерпретатор 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

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

<p><strong>17.3. Проверка строк</strong></p>

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

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

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

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

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

112 страниц про Париж. Опыт создания путеводителя (в помощь самостоятельным туристам)
112 страниц про Париж. Опыт создания путеводителя (в помощь самостоятельным туристам)

  По Парижу приятно гулять, бесцельно бродить, кружить по узким улочкам, отдыхать в маленьких кафе и в парках у фонтанов. Здесь есть все для любителей архитектуры, ценителей живописи, театралов, меломанов, гурманов, поклонников всевозможных развлечений. Париж притягивает, удивляет, очаровывает, постепенно приоткрывая тайны любознательному гостю, который теряется от сложности выбора: что же увидеть прямо сейчас, а что отложить на потом. Мои 112 страниц про Париж, надеюсь, помогут сделать этот выбор. Предложенные 7 прогулок по городу включают в себя не только известные всему миру достопримечательности, но и множество других, которые часто остаются за пределами стандартных туристических маршрутов.  

Елена Р Стамбулян , Елена Р. Стамбулян

Руководства / Путеводители / Словари и Энциклопедии
40+. Уход за телом
40+. Уход за телом

Женщина после 40 лет – настоящая богиня, умудренная опытом и оттого еще более прекрасная. Но чтобы надолго сохранить красоту и молодость, нужно постоянно собой заниматься: ухаживать за своим телом, руками и ногами, выполнять физические упражнения и соблюдать диету. Благодаря этой книге вы научитесь самостоятельно готовить омолаживающие, питательные, увлажняющие кремы и маски, а также скрабы и пилинги из натуральных продуктов; выполнять легкие и эффективные упражнения для стройной фигуры и профилактики варикозного расширения вен, делать массаж рук и ног, навсегда избавитесь от целлюлита и сможете легко ориентироваться в выборе омолаживающих процедур в СПА-салонах и хирургических операций в клиниках красоты. Правила здорового питания, популярные диеты и рецепты полезных блюд – в этой книге есть все, что поможет 40-летним женщинам всегда быть в форме.

Анастасия Витальевна Колпакова

Здоровье / Руководства / Здоровье и красота / Дом и досуг / Словари и Энциклопедии