У цій темі ми розберемося з використанням для циклу у сценаріях 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
#!/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.'
Вихід
Цикл для читання діапазону з приростом/зменшенням
Ми можемо збільшити або зменшити вказане значення, додавши ще дві крапки (..) і значення, яке слід змінювати, наприклад, {START..END..INCREMENT}. Подивіться приклад нижче:
Для приросту
#!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done
Вихід
Для зменшення
#!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done
Вихід
Цикл для читання змінних масиву
Ми можемо використовувати цикл 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++
Цикл для читання пробілів у рядку як роздільників слів
Синтаксис можна визначити так:
#!/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
Вихід
Для циклу читання кожного рядка в рядку як слова
Синтаксис можна визначити так:
#!/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
Вихід
Примітка. Єдина відмінність між «Циклом для читання пробілів у рядку як роздільників слів» і «Циклом для читання кожного рядка в рядку як слова» полягає в подвійних лапках навколо рядкової змінної.
Цикл для читання трьох виразів
Синтаксис трьох виразів є найпоширенішим синтаксисом циклу 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 'break' statement can be used inside 'for' 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 'continue' statement inside the 'for' 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' 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 'start, condition, and increment' 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 'Current Number: $((i++))' 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;>
Вихід
Цикл For із оператором Continue
Ми можемо використовувати оператор «продовжити» всередині циклу «for», щоб пропустити будь-який конкретний оператор для певної умови. Він повідомляє Bash припинити виконання конкретної ітерації циклу та обробити наступну ітерацію.
Скрипт Bash
#!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement' 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 'start, condition, and increment' 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 'Current Number: $((i++))' 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;>
Вихід
Висновок
У цій темі ми обговорили, як використовувати оператор циклу for у Bash для виконання певних завдань
=20;>=10;>