Menu
Coddy logo textTech

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

challenge icon

Задание

Легко

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

Ваш скрипт должен:

  1. Начинаться со строки shebang (#!/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 — ваша переменная цикла.

Шпаргалка

Цикл for позволяет вам итерироваться по списку элементов и выполнять действие для каждого из них.

Базовый синтаксис:

for variable in list; do
    # commands
done

Цикл по списку значений:

for name in Alice Bob Charlie; do
    echo "Hello, $name!"
done

Цикл по файлам с использованием подстановочных знаков:

for file in *.txt; do
    echo "Processing $file"
done

Цикл по диапазону чисел с использованием расширения фигурных скобок:

for i in {1..5}; do
    echo "Number: $i"
done

Для убывающих диапазонов укажите обратный порядок:

for i in {5..1}; do
    echo "Number: $i"
done

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

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

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

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