logo

Bash для циклу

У цій темі ми розберемося з використанням для циклу у сценаріях Bash.

Як і будь-яка інша мова програмування, сценарії оболонки bash також підтримують «цикли for» для виконання повторюваних завдань. Це допомагає нам повторювати певний набір інструкцій через ряд слів у рядку або елементи в масиві. Наприклад, ви можете запустити команду UNIX (або завдання) багато разів або просто прочитати та обробити список команд за допомогою циклу for.

Синтаксис циклу For

Ми можемо застосувати цикл for до сценарію bash двома способами. Одним із способів є «for-in», а іншим — синтаксис c-style. Нижче наведено синтаксис циклу for у сценаріях оболонки bash:

 for variable in list do commands done 

Або

 for (( expression1; expression2; expression3 )) do commands done 

Є кілька ключових моментів оператора циклу for:

  • Кожен блок «циклу for» у bash починається з ключового слова «do», за яким йдуть команди всередині блоку. Оператор «цикл for» закривається ключовим словом «done».
  • Кількість часу, протягом якого цикл for повторюватиметься, залежить від оголошених змінних списку.
  • Цикл вибере один елемент зі списку та призначить значення змінній, яка використовуватиметься в циклі.
  • Після виконання команд між 'do' і 'done' цикл повертається на початок і вибирає наступний елемент зі списку та повторює весь процес.
  • Список може містити числа або рядки тощо, розділені пробілами.

Нижче наведено кілька прикладів циклу for, щоб проілюструвати, як вони працюють:

Базовий приклад циклу For

Скрипт Bash

 #!/bin/bash #This is the basic example of 'for loop'. learn='Start learning from Javatpoint.' for learn in $learn do echo $learn done echo 'Thank You.' 

Вихід

Bash для циклу

Цикл для читання діапазону

Скрипт Bash

 #!/bin/bash #This is the basic example to print a series of numbers from 1 to 10. for num in {1..10} do echo $num done echo 'Series of numbers from 1 to 10.' 

Вихід

Bash для циклу

Цикл для читання діапазону з приростом/зменшенням

Ми можемо збільшити або зменшити вказане значення, додавши ще дві крапки (..) і значення, яке слід змінювати, наприклад, {START..END..INCREMENT}. Подивіться приклад нижче:

Для приросту

 #!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done 

Вихід

Bash для циклу

Для зменшення

 #!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done 

Вихід

Bash для циклу

Цикл для читання змінних масиву

Ми можемо використовувати цикл for для повторення значень масиву.

bash довжина рядка

Синтаксис можна визначити так:

 array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done 

Вихід

Для кожного елемента в «масиві» виконуються оператори або набір команд від «do» до «done». До кожного елемента можна отримати доступ як «i» в циклі для відповідної ітерації. Перегляньте наведений нижче приклад, у якому пояснюється використання циклу for для перебору елементів масиву:

Скрипт Bash

 #!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done 

Вихід

пошук рядка c++
Bash для циклу

Цикл для читання пробілів у рядку як роздільників слів

Синтаксис можна визначити так:

 #!/bin/bash for word in $str; do done 

тут, вул посилається на рядок.

Інструкції від 'do' до 'done' виконуються для кожного 'слова' рядка. Подивіться приклад нижче:

Скрипт Bash

 #!/bin/bash #For Loop to Read white spaces in String as word separators str='Let's start learning from Javatpoint.' for i in $str; do echo '$i' done 

Вихід

Bash для циклу

Для циклу читання кожного рядка в рядку як слова

Синтаксис можна визначити так:

 #!/bin/bash for word in '$str'; do done 

Тут оператори від 'do' до 'done' виконуються для кожного 'рядка' рядка. Подивіться приклад нижче:

Скрипт Bash

 #!/bin/bash #For Loop to Read each line in String as a word str='Let's start learning from Javatpoint.' for i in '$str'; do echo '$i' done 

Вихід

Bash для циклу

Примітка. Єдина відмінність між «Циклом для читання пробілів у рядку як роздільників слів» і «Циклом для читання кожного рядка в рядку як слова» полягає в подвійних лапках навколо рядкової змінної.

Цикл для читання трьох виразів

Синтаксис трьох виразів є найпоширенішим синтаксисом циклу for. Перший вираз відноситься до процесу ініціалізації, другий вираз відноситься до завершення, а третій вираз відноситься до збільшення або зменшення.

Перегляньте наведений нижче приклад, щоб надрукувати числа від 1 до 10 за допомогою трьох виразів із циклом for:

Скрипт Bash

 #!/bin/bash #For Loop to Read Three-expression for ((i=1; i<=10; i++)) do echo '$i' done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-8.webp" alt="Bash For Loop"> <h3>For Loop with a Break Statement</h3> <p>A &apos;break&apos; statement can be used inside &apos;for&apos; loop to terminate from the loop.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Table of 2 for table in {2..100..2} do echo $table if [ $table == 20 ]; then break fi done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-9.webp" alt="Bash For Loop"> <h3>For Loop with a Continue Statement</h3> <p>We can use the &apos;continue&apos; statement inside the &apos;for&apos; loop to skip any specific statement on a particular condition. It tells Bash to stop executing that particular iteration of the loop and process the next iteration.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement&apos; for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no &apos;start, condition, and increment&apos; in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo &apos;Current Number: $((i++))&apos; done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;></pre></=10;>

Вихід

Bash для циклу

Цикл For із оператором Continue

Ми можемо використовувати оператор «продовжити» всередині циклу «for», щоб пропустити будь-який конкретний оператор для певної умови. Він повідомляє Bash припинити виконання конкретної ітерації циклу та обробити наступну ітерацію.

Скрипт Bash

 #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement&apos; for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no &apos;start, condition, and increment&apos; in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo &apos;Current Number: $((i++))&apos; done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;>

Вихід

Bash для циклу

Висновок

У цій темі ми обговорили, як використовувати оператор циклу for у Bash для виконання певних завдань