Библиотека сайта rus-linux.net
Руководство по Bash для начинающих | ||
---|---|---|
Назад | Глава 9: Повторяющиеся задачи | Вперед |
Подводим итог
В этой главе мы рассмотрели, как внутрь циклических конструкций добавляются повторяющиеся команды. Наиболее распространенные циклы создаются с помощью инструкций for, while или until и их комбинаций. Цикл типа for выполняет задачу определенное количество раз. Если вы не знаете, сколько раз должна выполняться команда, используйте циклы типа until или while и укажите, когда цикл должен заканчиваться.
С помощью инструкций break и continue можно прерывать выполнение цикла или переходить на следующий шаг цикла.
С помощью оператора перенаправления входного потока можно в цикле вводить данные из файла. С помощью конвейера в цикле можно считывать результаты работы команд, выполняющих поиск.
Конструкция select используется в интерактивных скриптах для выдачи меню. С помощью инструкции shift можно в скрипте выполнить циклическую обработку аргументов командной строки.
Упражнения
Помните: при создании скриптов выполняйте работу по частям, проверяйте каждую часть отдельно перед тем, как включить ее в скрипт.
- Создайте скрипт, который будет работать с (рекурсивными) копиями файлов из
/etc
с тем, чтобы начинающий системный администратор мог без всякого беспокойства редактировать файлы. - Напишите скрипт, у которого только один аргумент - имя директория. Если количество аргументов больше или меньше одного, выдайте подсказку об использовании. Если аргумент не является директорием, выдайте еще одно сообщение. Для указанного директория выдайте список пяти самых больших файлов и список пяти файлов, которые были изменены последними.
- Можете ли вы объяснить, почему так важно помещать переменные в двойные кавычки в примере из раздела "Перенаправление вывода" ?
- Напишите скрипт, аналогичный скрипту из раздела "Встроенная команда break", но придумайте способ, как выйти из цикла после трехкратного повторения.
- Придумайте лучшее решение, чем move
-b
для скрипта из раздела "Встроенная команда continue", которое предотвратит перезапись существующих файлов. Например, проверьте, существует файл или нет. Не делайте лишней работы! - Перепишите скрипт
chdaemon.sh
из раздела "Логические операции", так чтобы он:- Выдавал список серверов, которые он проверяет, например, Apache, сервер SSH, демон NTP, демон имен, демон управления питанием и так далее.
- Для каждого варианта, который может выбрать пользователь, выдайте некоторую разумную информацию, например, имя веб-сервера, маршрут NTP и так далее.
- Дополнительно предоставьте пользователям возможность проверять другие сервера, которые не указаны в списке. В таких случаях, по меньшей мере, проверьте, что данный процесс работает.
- Изучите скрипт из раздела "Вычисление среднего значения". Обратите внимание на то, как обрабатываются вводимые символы, отличающиеся от q. Измените скрипт так, чтобы он выдавал сообщение при вводе символов.
- Перепишите тестовый скрипт из раздела "Встроенная команда shift" так, чтобы продемонстрировать случай N=0 и случай, когда N отсутствует. Проверьте.
Предыдущий раздел: | Оглавление | Следующий раздел: |
Встроенная команда shift | Глава 10 |