У цій темі ми продемонстрували, як використовувати оператор циклу while у сценарії Bash.
The цикл bash while можна визначити як інструкцію потоку керування, яка дозволяє багаторазово виконувати заданий набір команд, поки застосована умова оцінюється як істинна. Наприклад, ми можемо виконати команду echo багато разів або просто прочитати текстовий файл рядок за рядком і обробити результат за допомогою циклу while у Bash.
Синтаксис Bash While Loop
Цикл Bash while має такий формат:
макет сітки
while [ expression ]; do commands; multiple commands; done
Наведений вище синтаксис застосовний, лише якщо вираз містить одну умову.
Якщо у вираз потрібно включити кілька умов, то синтаксис циклу while буде таким:
while [ expressions ]; do commands; multiple commands; done
Одностроковий синтаксис циклу while можна визначити так:
while [ condition ]; do commands; done while control-command; do Commands; done
Є кілька ключових моментів оператора циклу while:
- Умова перевіряється перед виконанням команд.
- Цикл «while» також здатний виконувати всю роботу, яку може виконувати цикл «for».
- Команди між 'do' і 'done' виконуються неодноразово, доки умова оцінюється як істина.
- Аргументами для циклу while можуть бути логічні вирази.
Як це працює
Цикл while є циклом з обмеженим входом. Це означає, що умова перевіряється перед виконанням команд циклу while. Якщо умова оцінюється як істина, виконується набір команд, що слідують за цією умовою. В іншому випадку цикл припиняється, а керування програмою передається іншій команді, наступній за оператором 'done'.
Приклади циклу Bash While
Нижче наведено кілька прикладів циклу bash while:
Цикл While з єдиною умовою
У цьому прикладі цикл while використовується з однією умовою у виразі. Це базовий приклад циклу while, який друкує серію чисел відповідно до введених користувачем даних:
приклад
#!/bin/bash #Script to get specified numbers read -p 'Enter starting number: ' snum read -p 'Enter ending number: ' enum while [[ $snum -le $enum ]]; do echo $snum ((snum++)) done echo 'This is the sequence that you wanted.'
Вихід
Цикл While з кількома умовами
Нижче наведено приклад циклу while із кількома умовами у виразі:
приклад
#!/bin/bash #Script to get specified numbers read -p 'Enter starting number: ' snum read -p 'Enter ending number: ' enum while [[ $snum -lt $enum || $snum == $enum ]]; do echo $snum ((snum++)) done echo 'This is the sequence that you wanted.'
Вихід
перетворення рядка в дату
Нескінченний цикл while
Нескінченний цикл - це цикл, який не має кінця або завершення. Якщо умова завжди виявляється істинною, це створює нескінченний цикл. Цикл виконуватиметься безперервно, доки його не буде примусово зупинено за допомогою CTRL+C:
приклад
#!/bin/bash #An infinite while loop while : do echo 'Welcome to Javatpoint.' done
Ми також можемо записати наведений вище сценарій в один рядок так:
#!/bin/bash #An infinite while loop while :; do echo 'Welcome to Javatpoint.'; done
Вихід
Тут ми використали вбудовану команду (:), яка завжди повертає true. Ми також можемо використати вбудовану команду true для створення нескінченного циклу, як показано нижче:
приклад
#!/bin/bash #An infinite while loop while true do echo 'Welcome to Javatpoint' done
Цей сценарій bash також забезпечить той самий результат, що й нескінченний скрипт вище.
Примітка. Нескінченні цикли можна припинити за допомогою CTRL+C або додавши певний умовний вихід у сценарій.
Цикл While з інструкцією Break
Оператор break можна використовувати для зупинки циклу відповідно до застосованої умови. Наприклад:
приклад
#!/bin/bash #While Loop Example with a Break Statement echo 'Countdown for Website Launching...' i=10 while [ $i -ge 1 ] do if [ $i == 2 ] then echo 'Mission Aborted, Some Technical Error Found.' break fi echo '$i' (( i-- )) done
Вихід
Відповідно до сценарію, циклу призначається повторення десять разів. Але після восьми разів ітерації існує умова, яка перериває ітерацію та завершує цикл. Після виконання сценарію буде показано наступний результат.
Цикл While з інструкцією Continue
Інструкцію continue можна використовувати, щоб пропустити ітерацію для певної умови всередині циклу while.
приклад
#!/bin/bash #While Loop Example with a Continue Statement i=0 while [ $i -le 10 ] do ((i++)) if [[ '$i' == 5 ]]; then continue fi echo 'Current Number : $i' done echo 'Skipped number 5 using Continue Statement.'
Вихід
конкатенація рядків java
Цикл while із C-Style
Ми також можемо написати цикл while у сценарії bash так само, як цикл while у мові програмування C.
приклад
#!/bin/bash #While loop example in C style i=1 while((i <= 10)) do echo $i let i++ done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/46/bash-while-loop-6.webp" alt="Bash While Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use while loop statement in Bash to perform specific tasks.</p> <hr></=>