Menu
CoddyTech

Цикл 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 содержит имя текущего файла, позволяя автоматически выполнять операции с каждым файлом.

Учтите один нюанс: если шаблон не соответствует ни одному файлу, Bash не раскрывает его. Тогда цикл выполняется один раз, используя буквальный текст *.txt в качестве значения, вместо того чтобы не выполняться вовсе.

Также можно перебрать диапазон чисел с помощью раскрытия фигурных скобок:

#!/bin/bash
for i in {1..5}; do
    echo "Number: $i"
done

Это выводит числа от 1 до 5. Циклы for превращают повторяющиеся задачи всего в несколько строк кода, делая ваши скрипты эффективнее и упрощая их сопровождение.

challenge icon

Задание

Легко

Создай shell-скрипт с именем countdown.sh, который с помощью цикла for выводит обратный отсчёт от 5 до 1.

Твой скрипт должен:

  1. Начинаться со строки шебанга (#!/bin/bash)
  2. Использовать цикл for с раскрытием фигурных скобок для перебора чисел от 5 до 1 в обратном порядке
  3. Выводить каждое число на отдельной строке в формате: Countdown: [number]

Сделай скрипт исполняемым и запусти его. Результат должен быть таким:

Countdown: 5
Countdown: 4
Countdown: 3
Countdown: 2
Countdown: 1

Подсказка: Используй {5..1}, чтобы создать диапазон в обратном порядке. Внутри цикла используй echo "Countdown: $i", где i — переменная цикла.

Попробуйте сами

Терминал
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Песочница Terminal