Говорите на BASH/§1. Управляющие конструкции
Командная оболочка BASH и её аналоги имеют встроенный язык программирования. Его возможностей более чем достаточно для автоматизации широкого спектра задач. Он имеет все управляющие конструкции, свойственные языкам высокого уровня.
Во введении Вы уже ознакомились с организацией циклов и, в принципе можете этой темы более не касаться. Однако если Вы поставили целью стать настоящим *NIX-гуру — материал этой главы будет чрезвычайно полезен.
Цикл
[править]В общем виде цикл выглядит так:
for | СПИСОК; | do | КОМАНДА; | «done» |
начало цикла |
начало тела цикла |
конец цикла |
В сочетании с оператором диапазона ({A..B}) предоставляет удобный механизм организации циклов. Представим, что нам нужно составить список участников олимпиады по году рождения — с 1993 по 2000.
for | YEAR | in | {1993..2000}; | do | touch | «Contestants_»$YEAR".list"; | «done» | ||
начало цикла |
Объявляем переменную |
Список | начало тела цикла |
Создать файл |
Имя файла ($ — подставить значение переменной) |
конец цикла |
Если Вы запустили эту команду в терминале, примите мои поздравления — Вы стали счастливым обладателем 8 пустых файлов в текущей директории. Избавиться от них без труда нам позволит команда с использованием команды проверки условия - "[" (синоним test).
for file in *;do [ ! -s «$file» ] && rm $file ;done | |||||||||||||
for | file | in | *; | do | [ | ! | -s | "$file" | ] | && | rm "$file"; | done | |
начало цикла |
Объявляем переменную |
Список | начало тела цикла |
Если | файл пуст |
закрываем скобку |
Логическое «И» |
удалить файл |
конец цикла |