Циклические конструкции (for, while)
Автоматизируйте повторяющиеся задачи с помощью циклов «for» и «while», перебирая списки, файлы или условия.
«Циклические конструкции (for, while)» — бесплатный урок Linux Command Line & Bash Scripting Mastery на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Command Line & Bash Scripting Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Command Line & Bash Scripting Mastery содержит 4 уроков всего.
Автоматизация задач с помощью циклов
Добро пожаловать! На этом уроке вы познакомитесь с циклами в Bash. Циклы — это мощные инструменты, позволяющие скриптам многократно повторять набор команд.
Они необходимы для автоматизации повторяющихся задач, обработки списков данных или выполнения действий до тех пор, пока не будет выполнено определённое условие. Мы рассмотрим два основных типа: циклы for и циклы while.
Цикл «for»: списки элементов
Цикл for идеально подходит для перебора фиксированного списка элементов. Список может состоять из последовательности слов, имён файлов, чисел или любых других заданных вами элементов.
Базовый синтаксис:
forпеременнаяinэлемент1 элемент2 ...; do- повторяемые команды
done
Каждый элемент списка будет присвоен переменной, а команды выполнятся для каждого элемента.
Пример: перебор списка
Посмотрите, как работает цикл for, перебирая список фруктов. Запустите этот пример, чтобы увидеть, как обрабатывается каждый фрукт:
#!/bin/bash
echo "My favorite fruits:"
for fruit in Apple Banana Orange;
do
echo "$fruit is delicious!"
doneЦикл 'for': числовые последовательности
Цикл for также позволяет легко создавать числовые последовательности и перебирать их. Это особенно удобно для задач, требующих подсчёта или обработки элементов по индексу.
Для создания последовательности чисел можно использовать расширение скобок {start..end}:
for i in {1..5}; do ... done
Другой вариант — команда seq, которая умеет создавать последовательности с дополнительными параметрами, например с заданным шагом:
for i in $(seq 1 2 10); do ... done
Пример: подсчёт с помощью 'for'
Ниже показано, как с помощью расширения скобок выполнить подсчёт от 1 до 3. Это распространённый шаблон для простых числовых циклов.
#!/bin/bash
echo "Counting up:"
for i in {1..3};
do
echo "Number: $i"
doneЦикл 'while': условное повторение
Цикл while многократно выполняет блок команд, пока указанное условие остаётся истинным. Он особенно удобен, когда заранее неизвестно, сколько раз потребуется повторить цикл.
Его базовый синтаксис:
while[ condition ]; do- commands to repeat
done
Условие проверяется перед каждой итерацией. Если оно истинно, команды выполняются; если ложно, цикл завершается.
Пример: простой счётчик с 'while'
В этом примере цикл while считает от 1 до 3. Обратите внимание: переменная count увеличивается внутри цикла, чтобы в итоге условие стало ложным.
#!/bin/bash
count=1
echo "Counting with while loop:"
while [ $count -le 3 ];
do
echo "Current count: $count"
count=$((count + 1))
doneЦикл 'while': чтение файлов построчно
Очень распространённый и мощный способ использования цикла while — чтение и обработка файла построчно. Это особенно важно при разборе файлов журналов, файлов конфигурации и любых текстовых данных.
Шаблон обычно выглядит так:
while IFS= read -r line; do- commands to process $line
done < filename.txt
IFS= read -r — надёжный способ чтения строк, предотвращающий проблемы с пробелами и обратными косыми чертами.
Пример: обработка файла
Создадим временный файл и воспользуемся циклом while, чтобы прочитать и вывести его содержимое построчно. Это демонстрирует практическое применение обработки файлов.
#!/bin/bash
# Create a temporary file for demonstration
echo "First line of data" > temp_data.txt
echo "Second line of data" >> temp_data.txt
echo "Third line of data" >> temp_data.txt
echo "\nReading from temp_data.txt:"
while IFS= read -r line;
do
echo "Processed: $line"
done < temp_data.txt
# Clean up the temporary file
rm temp_data.txtВыбор типа цикла
Вы изучили циклы for и while. У каждого есть свои преимущества, зависящие от поставленной задачи.
Рассмотрим следующую ситуацию: необходимо обработать каждое имя файла в определённом каталоге.
Повторение: циклы для автоматизации
Вы успешно изучили конструкции циклов Bash!
- Цикл
forидеально подходит для перебора известного конечного списка элементов или числовой последовательности. - Цикл
whileлучше использовать, когда нужно повторять команды, пока определённое условие остаётся истинным; он часто применяется для подсчёта или чтения файлов построчно.
Освоение этих циклов — основа написания мощных и автоматизированных сценариев Bash. Продолжайте практиковаться, чтобы совершенствовать навыки написания сценариев!
Часто задаваемые вопросы
Урок «Циклические конструкции (for, while)» бесплатный?
Да — полный текст урока «Циклические конструкции (for, while)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Command Line & Bash Scripting Mastery, подпишись на CoddyKit PRO. Курс Linux Command Line & Bash Scripting Mastery содержит 4 уроков всего.
Чему я научусь в уроке «Циклические конструкции (for, while)»?
Автоматизируйте повторяющиеся задачи с помощью циклов «for» и «while», перебирая списки, файлы или условия. Ты практикуешь Linux Command Line & Bash Scripting Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Linux Command Line & Bash Scripting Mastery?
Предыдущий опыт не требуется. Linux Command Line & Bash Scripting Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Циклические конструкции (for, while)»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Linux Command Line & Bash Scripting Mastery?
Да. Каждый урок Linux Command Line & Bash Scripting Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Циклические конструкции (for, while)
- Функции в скриптах Bash
- Аргументы и параметры скрипта ($@, $#, getopts)
- Оператор case и сопоставление с шаблонами