Bash For Loop в Linux

Bash For Loop в Linux

 

В этом руководстве мы покажем вам, как использовать bash for loop в системах Linux. Для тех из вас, кто не знал, циклы являются одной из фундаментальных концепций языков программирования. Циклы удобны, когда вы хотите запускать серию команд снова и снова, пока не будет достигнуто определенное условие. Как и любой другой язык программирования, сценарии оболочки bash также поддерживают циклы for для выполнения повторяющихся задач. Это помогает нам перебирать определенный набор операторов по серии слов в строке или элементам в массиве.

В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить ‘ sudo‘ к командам для получения привилегий root.

Bash For Loop в Linux

Вы можете подать заявку на цикл в сценарии bash различными способами. В этой статье упоминаются некоторые полезные примеры BASH для циклов.

  • Стандартный Bash для цикла

Вот пример того, как Bash For Loop принимает форму:

for item in [LIST]

do

[COMMANDS]

done
  • Над струнами

Теперь посмотрим на стандартный Bash for Loop over Strings:

for element in Gold Silver Diamond Platinum

do

echo "Element: $element"

Done
  • В диапазоне чисел

Давайте посмотрим на следующий пример, где он будет перебирать номера, начиная с:

from 2 to 6.

for i in {2..6}

do

echo "Number: $i"

done
  • Элементы массива

Хотя цикл for можно использовать для чисел и строк, программисты могут даже использовать его для повторения в диапазоне. Например:

PLAYERS=('meilana' 'maria' 'ulfa')

for player in "${PLAYERS[@]}"; do

echo "Player: $player"

done
  • Утверждения прерывания и продолжения

Операторы break и continue могут использоваться для управления выполнением цикла for.

Заявление о перерыве

Чтобы использовать оператор break, пользователи должны указать конкретное условие, при выполнении которого цикл будет прерван. Программисты могут даже использовать оператор break, если они хотят остановить цикл for раньше запланированного:

for element in Gold Silver Diamond Platinum; do

if [[ "$element" == 'Diamond' ]]; then

break

fi

echo "Element: $element"

done

echo 'All Done!'

Продолжить заявление

Оператор continue завершает текущую итерацию цикла и передает управление программой следующей итерации цикла. Например, позвольте нам использовать оператор continue для итерации по диапазону чисел, и когда он достигнет определенного числа, которое в данном случае будет ‘6’, оператор continue выйдет из итерации и вернется к началу цикл, чтобы начать следующую итерацию:

for i in {2..8}; do

if [[ "$i" == '6' ]]; then

continue

fi

echo "Number: $i"

done

Bash для примеров циклов

Существует два способа использования цикла For Loop в bash: один — в синтаксисе в стиле c , а другой — в формате for-in . Синтаксис цикла for в стиле c выглядит следующим образом:

for ((INITIALIZATION; TEST; STEP))

do

[COMMANDS]

done

Meanwhile, as aforementioned, the ‘for-in’ loop will take the following form:

for variable in list

do

Statements

Done

Цикл для чтения входной переменной

Вот пример того, как вы можете использовать их для цикла. В этом примере мы возьмем входное значение текста, содержащего несколько слов, которые будут взяты после выполнения скрипта. Мы будем использовать цикл for, чтобы разделить предопределенный текст на основе пробелов. Затем убедитесь, что сценарий печатает каждое слово:

#!/bin/bash

echo "Enter a text of multiple words"

read text

i=1

for word in $text

do

echo "Word No-$i = $word"

((i=$i+1))

done

Затем запустите следующий скрипт:

bash forloop1.sh

Цикл с оператором перерыва

Программисты могут использовать оператор цикла for для чтения и печати списка файлов и папок текущего каталога. Сначала создайте имя файла и выполните следующий сценарий. Пользователи должны помнить, что «*» используется для чтения файлов в цикле for. Функционирование цикла — это простой способ: каждый файл или папка читается на каждом этапе каталога и выводится на печать с выводом в терминал с пробелом «табуляция»:

printf "Pinting the files and folders of the current Directory...\n\n"

for list in *

do

printf "$list\t"

done

printf "\n\nDone\n"

Затем запустите следующий сценарий:

bash forloop1.sh

Изменение расширения файла

Используя цикл for, можно изменить расширение всех файлов в текущем каталоге. Например, мы заменим весь файл .jpeg на файл .png, используя цикл for:

for file in *.jpeg; do

mv -- "$file" "${file%.jpeg}.png"

done

Поздравляю! Вы успешно изучили цикл Bash For Loop с примерами. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт Bash .

Прокрутить вверх