Руководство по Bash для начинающих
Назад Глава 9: Повторяющиеся задачи Вперед

Подводим итог

В этой главе мы рассмотрели, как внутрь циклических конструкций добавляются повторяющиеся команды. Наиболее распространенные циклы создаются с помощью инструкций for, while или until и их комбинаций. Цикл типа for выполняет задачу определенное количество раз. Если вы не знаете, сколько раз должна выполняться команда, используйте циклы типа until или while и укажите, когда цикл должен заканчиваться.

С помощью инструкций break и continue можно прерывать выполнение цикла или переходить на следующий шаг цикла.

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

Конструкция select используется в интерактивных скриптах для выдачи меню. С помощью инструкции shift можно в скрипте выполнить циклическую обработку аргументов командной строки.

Упражнения

Помните: при создании скриптов выполняйте работу по частям, проверяйте каждую часть отдельно перед тем, как включить ее в скрипт.

  1. Создайте скрипт, который будет работать с (рекурсивными) копиями файлов из /etc с тем, чтобы начинающий системный администратор мог без всякого беспокойства редактировать файлы.
  2. Напишите скрипт, у которого только один аргумент - имя директория. Если количество аргументов больше или меньше одного, выдайте подсказку об использовании. Если аргумент не является директорием, выдайте еще одно сообщение. Для указанного директория выдайте список пяти самых больших файлов и список пяти файлов, которые были изменены последними.
  3. Можете ли вы объяснить, почему так важно помещать переменные в двойные кавычки в примере из раздела "Перенаправление вывода" ?
  4. Напишите скрипт, аналогичный скрипту из раздела "Встроенная команда break", но придумайте способ, как выйти из цикла после трехкратного повторения.
  5. Придумайте лучшее решение, чем move -b для скрипта из раздела "Встроенная команда continue", которое предотвратит перезапись существующих файлов. Например, проверьте, существует файл или нет. Не делайте лишней работы!
  6. Перепишите скрипт chdaemon.sh из раздела "Логические операции", так чтобы он:

  7. Перепишите тестовый скрипт из раздела "Встроенная команда shift" так, чтобы продемонстрировать случай N=0 и случай, когда N отсутствует. Проверьте.


Предыдущий раздел: Оглавление Следующий раздел:
Встроенная команда shift   Глава 10