Bash: Цикл For c Описанием и Примерами
access_time
hourglass_empty
person_outline

Bash: Цикл For c Описанием и Примерами

Цикл for — один из основных циклов в разных языках программирования. В этом руководстве, как уже понятно из названия — “Bash: Цикл For” — мы объясним, как он используется в языке программирования bash. Так что приготовьтесь добавить новый инструмент в ваш арсенал разработчика!

Цикл for — оператор итерации. Это значит, что он позволяет выполнять код повторно. Допустим, вы хотите запустить одну и ту же инструкцию 5 раз. Вместо того, чтобы писать пять отдельных кусков кода, вы можете просто написать синтаксис цикла for один раз. Давайте разбираться, как работает цикл for более детально?  

Синтаксис Цикла For в Bash

По сути, самый простой синтаксис цикла for перебирает список простых значений. Обычно это выглядит так:

for VARIABLE in 1 2 3 4 5 .. N
Perform the below command:
    command1
    command2
    commandN
done

На деле этот синтаксис будет выглядеть следующим образом:

#!/bin/bash
for i in 1 2 3 4 5
do
 echo "Hello $i"
done

Выполнение файла bash приведёт к появлению следующего текста:

Hello 1
Hello 2
Hello 3
Hello 4 
Hello 5

Давайте разберём каждый элемент:

  • #!/bin/bash — показывает, что код является скриптом bash
  • i — это плейсхолдер для переменной. Между тем, $i — это индивидуальное значение переменной. Вы также можете записать это как c/$c или любым другим именем
  • in — разделяет переменную и элементы, что следуют за ней
  • 1 2 3 4 5 — это пример элементов, над которыми вы хотите выполнить инструкцию
  • do — это ключевое слово, которое запускает циклы. Затем оно выполнит инструкцию энное количество раз, при этом n — это общее количество элементов. Здесь значение n равно 5
  • echo “Hello: $i” — код, который мы будем повторять энное количество раз. Помните, что кавычки превращают что-либо внутри них в одну переменную.
  • done — останавливает цикл

Вы можете написать код по-разному в зависимости от версии bash, которую вы используете.

Bash версии 3.0+ позволяет сокращённо задавать диапазон с помощью “. .”.

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

Bash версии 4.0+ позволяет использовать синтаксис {START. .END. .INCREMENT}.

#!/bin/bash
for i in {0. .8. .2}
do
  echo "Hai $i"
done

Результат будет выглядеть следующим образом:

Hai 0
Hai 2
Hai 4
Hai 6 
Hai 8

Другие распространённые варианты синтаксиса:

for VARIABLE in file1 file2 file3
do
    command1 on $VARIABLE
    command2
    commandN
done

Или так:

for OUTPUT in $(Linux-Or-Unix-Command-Here)
do
    command1 on $OUTPUT
    command2 on $OUTPUT
    commandN
done

Цикл For в Bash: Примеры

Вы можете обновить синтаксис для выполнения нескольких операций. Помните, что перед тем, как что-либо делать, вам необходимо зайти на свой VPS-сервер. Если вы сомневаетесь, как это сделать, вам поможет это руководство.

Между тем, если у вас возникли проблемы с bash, рекомендуем прочесть общее руководство по bash (англ). Помните, что функции bash должны быть в файле .sh. Чтобы создать его, запустите следующую команду в командной строке:

vim NameOfFile.sh

Эта команда создаст файл .sh и откроет его в редакторе VIM. Опять-таки более детально это описано в вышеупомянутом руководстве по базовым функциям bash.

Используем Bash-цикл For для Создания Бесконечного Цикла

После активации этот цикл будет выполнять код до тех пор, пока вы не остановите его, нажав Control + C. В этом случае термин «Hello World» будет появляться снова и снова сам по себе.

#!/bin/bash
for (( ; ; ))
do
  echo "Hello World!"
done

Цикл For с Тремя Выражениями в Bash

Цикл состоит из трёх записывающих выражений — инициализатора, или начального значения переменной (EXP1), условия окончания цикла (EXP2) и выражения, вычисляемого после каждой итерации (EXP3). Иногда люди называют его циклом в стиле C из-за близкого сходства в структуре кода с этим языком программирования. Синтаксис цикла выглядит следующим образом:

for (( EXP1; EXP2; EXP3 ))
do
    command1
    command2
    command3
done

А вот рабочий пример, который вы можете попробовать повторить сами:

#!/bin/bash
for (( c=1; c<=5; c++ ))
do  
  echo "Hai $c"
done

Начальное значение, указанное в коде, равно 1. Цикл будет выполняться, до тех пор пока условие в EXP2 истинно (true), в данном случае, это означает, что оно не должно быть больше 5. Знак, ++, в свою очередь, означает инкремент, или увеличение на 1. Цикл будет повторяться один за другим, начиная с начального значения. Результат:

Hai 1
Hai 2
Hai 3
Hai 4 
Hai 5

Управление Циклами Bash: Цикл For с Пропуском и Продолжением

Оператор continue пропускает одну итерацию цикла и переходит к следующей. Вот как выглядеть синтаксис такой операции:

for I in 1 2 3 4 5
do
 if [condition]
 then
    continue   #Перейти к следующей итерации I в цикле и пропустить инструкцию 3
 fi
 statement
done

Следуя синтаксису, мы можем сказать bash пропустить выполнение одной итерации, а затем продолжить цикл:

for i in {1..5}
do
  if [[ "$i" == '4' ]]
  then
    continue
  fi
  echo "Hai $i4"
done

Вывод:

Hai 1
Hai 2
Hai 3
Hai 5

Поскольку значение 4 соответствовало инструкции continue, цикл не выполнил код и перешел к следующему значению — 5.

Управление Циклами Bash: Цикл For с Перерывом

Цикл позволяет остановить операцию, если она соответствует заявленным условиям. При этом за ней может следовать другая инструкция. Вот синтаксис:

for I in 1 2 3 4 5
  do
  if [condition]
  then
    break
  fi
  statement
done

При использовании этой функции наш код будет выглядеть так:

for city in Manila Bangkok Jakarta Kuala Lumpur
do
  if [[ "$city" == 'Jakarta' ]]; then
    break
  fi
  echo "city: $city"
done

echo 'Yes, that’s all!'

И, наконец, вывод:

city: Manila
city: Bangkok
Yes, that’s all!

Оператор сообщает циклу прервать операцию, когда условие выполнено (термин Джакарта найден). Затем он выполнит второй код, а именно ввод текста “Да, это всё!” (“Yes, that’s all!”).

Краткое Изложение

Цикл for отлично подходит для автоматизации повторяющихся задач в Bash. Помимо основных примеров, приведённых выше, существует ещё множество вариантов применения этого цикла. Например, с его помощью вы можете отслеживать файлы и выполнять ещё множество других задач. 

Всё, что вам нужно сделать, это разобраться в синтаксисе. Цикл for имеет довольно высокий порог вхождения, но мы уверенны, что чтение этой вступительной статьи — хорошее начало. Всё остальное — дело практики. Удачи!

Автор

Author

Olha L. / @olha

Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.

Схожі уроки

Залиште відповідь

Коментар*

Ім'я*

Email*

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Долучитися до Hostinger зараз!