Программирование на 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" не пустой.
    <


    Содержание  Назад  Вперед