Программирование на Shell (Unix)


ПРОГРАММНЫЕ СТРУКТУРЫ


 

5. ПРОГРАММНЫЕ СТРУКТУРЫ

  • 5.1. КОМАНДА TEST ("[ ]")

  • 5.2. УСЛОВНЫЙ ОПЕРАТОР "IF"
  • 5.3. ОПЕРАТОР ВЫЗОВА ("CASE")
  • 5.4. ОПЕРАТОР ЦИКЛА С ПЕРЕЧИСЛЕНИЕМ ("FOR")
  • 5.5. ОПЕРАТОР ЦИКЛА С ИСТИННЫМ УСЛОВИЕМ ("WHILE")

  • 5.6. ОПЕРАТОР ЦИКЛА С ЛОЖНЫМ УСЛОВИЕМ ("UNTIL")
  • 5.7. ПУСТОЙ ОПЕРАТОР
  • 5.8. ФУНКЦИИ В SHELL
  • 5.9. ОБРАБОТКА ПРЕРЫВАНИЙ ("TRAP")

Как во всяком языке программирования в тексте на языке shell могут быть комментарии. Для этого используется символ "#". Все, что находится в строке (в командном файле) левее этого символа, воспринимается интерпретатором как комментарий. Например,

# Это комментарий. ## И это. ### И это тоже.

Как во всяком процедурном языке программирования в языке shell есть операторы. Ряд операторов позволяет управлять последовательностью выполнения команд. В таких операторах часто необходима проверка условия, которая и определяет направление продолжения вычислений.

5.1. Команда test ("[ ]")

Команда test проверяет выполнение некоторого условия. С использованием этой (встроенной) команды формируются операторы выбора и цикла языка shell.

Два возможных формата команды:

test условие

или

[ условие ]

мы будем пользоваться вторым вариантом, т.е. вместо того, чтобы писать перед условием слово "test", будем заключать условие в скобки, что более привычно для программистов.

На самом деле shell будет распознавать эту команду по открывающей скобке "[", как слову(!), соответствующему команде "test". Уже этого достаточно, чтобы предупредить о распространенной ошибке начинающих: Между скобками и содержащимся в них условием обязательно должны быть пробелы.

Пробелы должны быть и между значениями и символом сравнения или операции (как, кстати, и в команде "expr"). Не путать с противоположным требованием для присваивания значений переменным.

В shell используются условия различных "типов".

УСЛОВИЯ ПРОВЕРКИ ФАЙЛОВ:

-f file файл "file" является обычным файлом;
-d file файл "file" - каталог;
-с file файл "file" - специальный файл;
-r file имеется разрешение на чтение файла "file";
-w file имеется разрешение на запись в файл "file";
-s file файл "file" не пустой.
<


Начало  Назад  Вперед



Книжный магазин