Цикл for
Часть раздела Основы путешествия по Terminal на Coddy — урок 71 из 82.
Иногда вам нужно повторить действие несколько раз. Вместо того чтобы писать одну и ту же команду снова и снова, вы можете использовать цикл for, чтобы перебрать список элементов и выполнить действие для каждого из них.
Вот базовая структура цикла for в Bash:
#!/bin/bash
for name in Alice Bob Charlie; do
echo "Hello, $name!"
doneЭтот скрипт выводит приветствие для каждого имени в списке. Переменная name поочередно принимает каждое значение: сначала "Alice", затем "Bob", затем "Charlie". Ключевое слово do обозначает начало тела цикла, а done — его конец.
Циклы for особенно эффективны в сочетании с шаблонами (wildcards). Вы можете перебрать все файлы в директории:
#!/bin/bash
for file in *.txt; do
echo "Processing $file"
doneЭто позволит перебрать каждый файл .txt в текущем каталоге. На каждой итерации переменная file содержит имя текущего файла, что позволяет автоматически выполнять операции с каждым файлом.
Вы также можете перебирать диапазон чисел с помощью раскрытия фигурных скобок (brace expansion):
#!/bin/bash
for i in {1..5}; do
echo "Number: $i"
doneЭто выведет числа от 1 до 5. Циклы for превращают повторяющиеся задачи всего в несколько строк кода, делая ваши скрипты более эффективными и простыми в обслуживании.
Задание
ЛегкоСоздайте скрипт командной строки с именем countdown.sh, который использует цикл for для вывода обратного отсчета от 5 до 1.
Ваш скрипт должен:
- Начинаться со строки shebang (
#!/bin/bash) - Использовать цикл for с раскрытием скобок для перебора чисел от 5 до 1
- Выводить каждое число с новой строки в формате:
Countdown: [number]
Сделайте скрипт исполняемым и запустите его. Ваш вывод должен быть следующим:
Countdown: 5
Countdown: 4
Countdown: 3
Countdown: 2
Countdown: 1Подсказка: Используйте
{5..1}для создания убывающего диапазона. Внутри цикла используйтеecho "Countdown: $i", гдеi— ваша переменная цикла.
Попробуйте сами
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Каталоги
Создать каталогСкопировать каталогПереместить и переименовать каталогУдалить каталогИтог - Операции с каталогами7Содержимое файлов
Head и TailПодсчёт словКоманда sortКоманда uniqОсновы grepGrep с флагамиПовторение - Текстовый детектив10Проект анализатора логов
Обзор проектаПросмотр файла лога13Основы скриптинга оболочки
Что такое скрипт оболочкиСоздание и запуск скриптаПеременные в скриптахПользовательский ввод в скриптахОператор ifЦикл forЦикл whileИтог - Угадай число2Навигация
Вывод текущей рабочей директорииСписок файловСмена директорииАбсолютные и относительные путиДомашняя и корневая директорииИтог - Найди свой путь8Перенаправление
Стандартный выводПерезапись в файлДописывание в файлСтандартный вводСтандартная ошибкаПовторение - Сборщик логов11Права доступа
Понимание прав доступаЧтение прав доступаChmod с числамиChmod с символамиВладение файламиПовторение - Заблокируйте доступ14Проект скрипта резервного копирования
Обзор проектаПолучение пути к источнику3Файлы
Создать файлПрочитать файлСкопировать файлПереместить и переименовать файлУдалить файлПовторение - Операции с файлами6Символы подстановки и шаблоны
Звёздный символ подстановкиВопросительный символ подстановкиСкобочные символы подстановкиКомбинирование символов подстановкиПовторение - выборочные операции9Каналы
Что такое каналЦепочка двух командЦепочка нескольких командКанал с grepИтог - Конвейер данных