Цикл 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 особенно эффективны в сочетании с подстановочными знаками. Вы можете перебрать все файлы в каталоге:
#!/bin/bash
for file in *.txt; do
echo "Processing $file"
doneЭто выполняет итерацию по каждому файлу .txt в текущем каталоге. На каждой итерации переменная file содержит текущее имя файла, что позволяет автоматически выполнять операции с каждым файлом.
Вы также можете перебрать диапазон чисел с помощью расширения скобок:
#!/bin/bash
for i in {1..5}; do
echo "Number: $i"
doneЭто выводит числа от 1 до 5. Циклы for превращают повторяющиеся задачи всего в несколько строк кода, делая ваши скрипты более эффективными и простыми в сопровождении.
Задание
ЛегкоСоздай shell-скрипт с именем 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Итог - Конвейер данныхПотренируйтесь самостоятельно: Песочница Terminal