А цикл while це оператор, який повторює блок коду, доки вказану умову не буде оцінено як false. Ми можемо використовувати цей оператор або цикл у нашій програмі, коли не знаємо, скільки разів умова буде оцінюватися як істина, перш ніж оцінюватися як хибність.
Зміст
- Синтаксис циклу while у сценаріях BASH
- Приклад циклічного використання оператора while у Linux
- Читання файлу за допомогою циклу while
- Нескінченний цикл while
- Цикл while для повторення фіксованої кількості разів
- Прочитайте аргумент командного рядка з параметрами getopts
- Цикл while у стилі C
- Цикл while для виконання операцій над файлом
- Запис у файл за допомогою циклу while
- Перервати та продовжити використання циклу while
- Часті запитання
Синтаксис циклу while у сценаріях BASH
while [ condition ]; do # statements # commands done>
Якщо умова виконується, то команди всередині блоку while виконуються та повторюються знову після перевірки умови. Крім того, якщо умова хибна, оператори всередині блоку while пропускаються, а оператори після блоку while виконуються.
Приклад циклічного використання оператора while у Linux
Спочатку ми створюємо текстовий файл за допомогою текстового редактора в Linux, у цьому випадку ми використовуємо текстовий редактор `vim`.
vim while.sh>
#!/usr/bin/bash
а=7
while [ $a -gt 4 ];
робити
echo $a
((a–))
зроблено
echo Поза циклом
Пояснення:
-
#!/usr/bin/bash>: Цей рядок називається shebang і вказує шлях до інтерпретатора, який слід використовувати для виконання сценарію. У цьому випадку вказується, що слід використовувати оболонку Bash. -
a=7>: ініціалізує змінну з іменемa>зі значенням 7. -
while [ $a -gt 4 ];>: Запускає цикл while, який триває доти, доки не встановлено значенняa>більше 4. -
do>: Позначає початок блоку коду, який буде виконано в циклі while. -
echo $a>: друкує поточне значення змінноїa>до консолі. -
((a--))>: зменшує значенняa>на 1. Це скорочений спосіб написанняa=$((a - 1))>. -
done>: Позначає кінець блоку коду для циклу while. -
echo 'Out of the loop'>: Виводить із циклу на консоль після завершення циклу while.

Цикл while в Linux
Підсумовуючи, цей скрипт ініціалізує змінну ` a`> зі значенням 7, потім вводить цикл while, який триває до тих пір, поки ` a`> більше 4. У циклі друкується поточне значення ` a`> і зменшує його на 1 у кожній ітерації. Один раз ` a`> стає 4 або менше, цикл виходить, і сценарій виводить Out of the loop на консоль.
Читання файлу за допомогою циклу while
Ми можемо прочитати файл за допомогою циклу while у BASH. Розбираючи певні параметри умови циклу while, ми можемо перебирати файл рядок за рядком або іншими групами, наприклад символами чи словами.
програма на java
Спочатку ми створюємо текстовий файл за допомогою текстового редактора в Linux, у цьому випадку ми використовуємо текстовий редактор `vim`.
vim while.sh>
#!/usr/bin/bash
файл=temp.txt
під час читання -r рядок;
робити
echo $line
виконано <$файл
Пояснення:
-
#!/usr/bin/bash>: цей рядок shebang вказує, що для інтерпретації сценарію слід використовувати оболонку Bash. -
file=temp.txt>: призначає рядок temp.txt зміннійfile>, що представляє назву файлу для читання. -
while read -r line;>: Ініціює цикл while, який читає кожен рядок із зазначеного файлу. -
do>: Позначає початок блоку коду, який буде виконано в циклі while. -
echo $line>: друкує вміст змінноїline>, який представляє поточний рядок, який зчитується з файлу на консоль. -
done>: Позначає кінець блоку коду для циклу while. -
<'$file'>: перенаправляє вхідні дані циклу while із указаного файлу, у цьому випадку temp.txt.
Таким чином, цей скрипт читає кожен рядок із файлу temp.txt і друкує його на консолі, доки у файлі не залишиться рядків. The-r>варіант зread>Команда використовується для того, щоб зворотні косі риски у вхідних даних розглядалися як буквальні символи.

читати файл за допомогою оператора while у Linux
Ми використовуємо команду read, щоб фактично отримати рядки або символи з файлу. Команда читання передається з аргументом -r, який ігнорує екранування символів, якщо з'являється, і, отже, її аналізують як її. Ми читаємо рядок із файлу, згаданого після оператора done. Команда read зчитує рядок зі згаданого файлу, а цикли while завершуються, коли прочитано останній рядок із файлу (не залишилося жодного рядка для читання).
Ось як ми можемо прочитати вміст файлу за допомогою циклу while у BASH.
Нескінченний цикл while
Щоб створити нескінченний цикл за допомогою оператора циклу while. Нам не потрібно встановлювати жодних умов у циклі while, отже, цикл повторюється нескінченно. Нижче наведено приклад нескінченного циклу while:
Спочатку ми створюємо текстовий файл за допомогою текстового редактора в Linux, у цьому випадку ми використовуємо текстовий редактор `vim`.
vim while.sh>
#!/usr/bin/bash
поки:
робити
echo Нескінченний цикл
# Ми можемо натиснути Ctrl + C, щоб вийти зі сценарію
зроблено
Пояснення:
-
#!/usr/bin/bash>: Рядок shebang вказує, що для інтерпретації сценарію слід використовувати оболонку Bash. -
while :>: Ініціює нескінченний цикл. The:>(двокрапка) — це вбудована команда оболонки, яка завжди повертає значення true, фактично створюючи нескінченний цикл. -
do>: Позначає початок блоку коду, який буде виконано в нескінченному циклі. -
echo 'An Infinite loop'>: друкує рядок An Infinite loop на консолі під час кожної ітерації циклу. -
# We can press Ctrl + C to exit the script>: це коментар, який вказує на те, що ви можете перервати сценарій, натиснувши Ctrl + C у терміналі. Ctrl + C — це поширений спосіб переривання та завершення запущених сценаріїв у терміналі. -
done>: Позначає кінець блоку коду для нескінченного циклу.
Таким чином, цей сценарій створює нескінченний цикл, який безперервно відтворює повідомлення An Infinite loop на консоль. Цикл можна перервати та вийти зі сценарію, натиснувши Ctrl + C у терміналі.

Нескінченний цикл із використанням оператора While в Linux
Таким чином, цикл while у сценарії буде повторюватися протягом нескінченного часу. Ми можемо вручну розірвати цикл або сценарій за допомогою CTRL + C.
Цикл while для повторення фіксованої кількості разів
Ми можемо використовувати цикл while для повторення фіксованої кількості разів, ми можемо встановити умову як -le або менше, ніж дорівнює числу, і цикл повторюватиметься, доки ітератор не стане меншим або дорівнюватиме числу, указаному в стан. Крім того, нам потрібно збільшити ітератор вручну, щоб ітератор циклу працював, інакше цикл триватиме вічно.
Спочатку ми створюємо текстовий файл за допомогою текстового редактора в Linux, у цьому випадку ми використовуємо текстовий редактор `vim`.
vim while.sh>
#!/usr/bin/bash
i=1
# число 4 може бути обмеженням
# ітерація циклу
while [ $i -le 4 ];
робити
echo $i
((i++))
зробленоновий рядок у python
Пояснення:
-
#!/usr/bin/bash>: Рядок shebang вказує, що для інтерпретації сценарію слід використовувати оболонку Bash. -
i=1>: ініціалізує змінну з іменемi>зі значенням 1. -
while [ $i -le 4 ];>: Ініціює цикл while, який триває доти, доки не встановлено значенняi>менше або дорівнює 4. -
do>: Позначає початок блоку коду, який буде виконано в циклі while. -
echo $i>: друкує поточне значення змінноїi>до консолі. -
((i++))>: збільшує значенняi>на 1. Це скорочений спосіб написанняi=$((i + 1))>. -
done>: Позначає кінець блоку коду для циклу while.

цикл while в Linux
У наведеному вище прикладі ми бачимо, що цикл повторюється певну кількість разів. Оскільки ми ініціалізували лічильник на 1, і умовою є повторення циклу, доки ітератор не стане меншим або рівним числу в цьому випадку 4. Таким чином, ми можемо змінити число в умові відповідно до нашої вимоги.
Прочитайте аргумент командного рядка з параметрами getopts
Ми можемо використовувати параметри get ops, щоб прочитати вхідні дані з командного рядка, і якщо є кілька аргументів, ми можемо перевірити їх і проаналізувати один за одним за допомогою циклу while. getopts — це інструмент для отримання введених даних користувача з командного рядка. Ми можемо мати кілька параметрів аналізу з командного рядка, а за допомогою getopts і циклів while ми можемо створити професійно виглядаючу програму введення користувача.
Спочатку ми створюємо текстовий файл за допомогою текстового редактора в Linux, у цьому випадку ми використовуємо текстовий редактор `vim`.
vim while.sh>
#!/bin/bash
while getopts n:a: OPT
робити
справа ${OPT} в
n) name=${OPTARG} ;;
a) вік=${OPTARG} ;;
*) echo Недійсний параметр
вихід 1 ;;
esac
зроблено
printf Мене звати $name і мені $age років
Пояснення:
-
#!/bin/bash>: Рядок shebang вказує, що для інтерпретації сценарію слід використовувати оболонку Bash. -
while getopts n:a: OPT>: Ініціює цикл, який використовуєgetopts>для аналізу параметрів командного рядка. Зазначені параметри єn>іa>, після чого очікується сварка. -
do>: Позначає початок блоку коду, який буде виконано в циклі. -
case '${OPT}' in>: запускає оператор case, який оцінює значення опції, яку зустрічаєgetopts>. -
n) name=${OPTARG};;>: Якщо варіант є-n>, присвоює значення відповідного аргументу зміннійname>. -
a) age=${OPTARG};;>: Якщо варіант є-a>, присвоює значення відповідного аргументу зміннійage>. -
*) echo 'Invalid option'>: якщо виявлено недійсний параметр, на консолі виводиться повідомлення про помилку. -
exit 1;;>: вихід зі сценарію з ненульовим кодом стану, що вказує на помилку. -
esac>: завершує інструкцію case. -
done>: Позначає кінець блоку коду для циклу. -
printf 'My name is $name and am $age years old '>: друкує форматоване повідомлення на консолі, використовуючи значення `name`>і `age`>отримані з параметрів командного рядка.

Цикл while в Linux
У цьому випадку у нас є два варіанти, а саме ім’я та вік, ви можете мати кілька варіантів. Нам потрібно вказати, який параметр ми будемо використовувати оператори switch case і з командного рядка за допомогою параметра -shorthand. У цьому випадку ми використали -n для імені і -а за віком . У нас також є перевірка регістру за замовчуванням або недійсний, щоб ми не аналізували неправильні аргументи. Ми можемо призначити значення опції за допомогою OPTARG змінна, яка аналізує значення, надане параметру.
Цикл while тут використовується для повторення, доки не буде жодних параметрів, переданих із командного рядка. Ми перевіряємо наявність опцій -n і -a та повторюємо, доки не буде натиснуто клавішу повернення каретки або введення, і більше не буде параметрів для аналізу.
Цикл while у стилі C
Ми можемо використовувати цикл while у стилі C у BASH, змінні потрібно оцінювати у стилі BASH, але загальний синтаксис виглядає як C. Ми можемо використовувати такі оператори, як ,<= і так далі в умові циклу while і, отже, називається як цикл while у стилі C.
Спочатку ми створюємо текстовий файл за допомогою текстового редактора в Linux, у цьому випадку ми використовуємо текстовий редактор `vim`.
vim c-style-while.sh>
#!/bin/bash
i=0
а ((i <12))
робити
echo $i
((i+=2))
зроблено

c-style-while
У цьому прикладі ми бачимо, що цикл while має умову з операторами, відмінними від bash, як-от -le, -ge тощо, замість цього ми використовуємо оператори в стилі C в умові. Решта циклу є основним циклом, як у BASH, змінна або ітератор i збільшується на два, як ми можемо бачити в останньому операторі тіла циклу. Таким чином, цикл повторюється 5 разів.
Цикл while для виконання операцій над файлом
Ми можемо виконувати операції над файлом, наприклад читати лише певну частину файлу. Якщо у нас є стовпці, відформатовані певним чином, ми можемо використовувати змінні, щоб призначити їх і надрукувати дані одного рядка.
Ось приклад імені файлу wh.txt
vim wh.txt>
ми створюємо текстовий файл за допомогою текстового редактора в Linux, у цьому випадку ми використовуємо текстовий редактор `vim`.
vim file-while.sh>
Видалено тип мови
Python general 1991
Javascript web 1995
Java mobile 1995
Rust embedded 2010
Перейти до версії 2007
як працює комп'ютер
ми створюємо текстовий файл за допомогою текстового редактора в Linux, у цьому випадку ми використовуємо текстовий редактор `vim`.
vim file-while.sh>
#!/bin/bash
під час читання a b c
робити
echo $b – $a
зроблено

Цикл while в Linux
У цьому прикладі ми маємо три рядки, ми зчитуємо вміст, призначаючи його змінним a, b і c, це може бути все, що завгодно, але не забудьте використовувати їх у тілі циклу. Ми можемо вибрати окремий стовпець, наприклад b і a, і надрукувати або виконати над ними будь-які операції. Це не буде відображено у файлі, оскільки це лише локальні змінні сценарію.
Запис у файл за допомогою циклу while
Ми можемо писати у файл за допомогою введення користувача в циклі while. Ми можемо використовувати цикл while для повторення, доки ми вручну не вийдемо з циклу за допомогою CTRL + D, зберігаючи зміни у файлі, або за допомогою CTRL + C, щоб уникнути запису у файл. Ми використовуємо команду read, щоб ввести текст із командного рядка та розібрати його у файл.
Спочатку ми створюємо текстовий файл за допомогою текстового редактора в Linux, у цьому випадку ми використовуємо текстовий редактор `vim`.
vim write-wh.sh>
#! /bin/bash
файл=wh.txt
echo Введіть вміст у файл $file
під час читання рядка
робити
echo $line>> $file
зроблено

цикл while в Linux
Отже, з наведеного вище прикладу ми змогли ввести текст у файл за допомогою циклу while і команди read. Щоб вийти з циклу та зберегти зміни у файлі, ми використовуємо клавіші CTRL+D, а щоб вийти з циклу, не зберігаючи нічого у файл, ми можемо використовувати клавіші CTRL+C. Таким чином, ми вводимо текст із командного рядка в текстовий файл за допомогою команди read і циклу while.
Перервати та продовжити використання циклу while
Break і continue важливі в програмі, яка працює з операторами циклу, оскільки вони контролюють потік операторів циклу без будь-яких явних умов.
Інструкція Break у циклі While
Ми використовуємо оператори break, щоб вийти з циклу, не чекаючи, поки умова циклу while оціниться як false. Цей оператор можна використовувати в блоці циклу. Це можна використовувати для виходу з нескінченного циклу з програмною умовою всередині циклу і таким чином підтримувати контроль над циклом.
Наприклад, у нас є скрипт, який рахує від 1 і назавжди. Але ми можемо програмно вийти з циклу за допомогою оператора break всередині тіла циклу з умовою.
Спочатку ми створюємо текстовий файл за допомогою текстового редактора в Linux, у цьому випадку ми використовуємо текстовий редактор `vim`.
vim while.sh>
#!/usr/bin/bash
i=1
поки:
робити
echo $i
if [$i -eq 20]; потім
echo Це кінець циклу
перерва
бути
((i++))
зроблено

Інструкція Break while циклу в Linux
Зі сценарію та виконання ми бачимо, що ми змогли розірвати або вийти з нескінченного циклу за допомогою умовного оператора та оператора break. Таким чином, інструкція break використовується для отримання потоку керування програмою/скриптом із циклу while для виходу з циклу без оцінки умови циклу як false.
Оператор Continue у циклі While
Ми можемо використовувати оператор continue, щоб діяти протилежно оператору break. Він перейде до початку блоку циклу та повторить його знову. Це можна використовувати для пропуску певних команд для певних умов і, отже, дозволяє змінювати потік циклу.
Наприклад, якщо у нас є змінна, ініціалізована на 1, і ми хочемо відобразити лише числа, що діляться на п’ять, або за певним шаблоном після умови, ми можемо використовувати оператори continue, щоб зробити саме це. Це дозволяє повторювати цикл у потрібний спосіб.
Спочатку ми створюємо текстовий файл за допомогою текстового редактора в Linux, у цьому випадку ми використовуємо текстовий редактор `vim`.
vim while.sh>
#!/usr/bin/bash
i=1
while [ $i -lt 30 ];
робити
((i++))
if [[ $(( $i % 5 )) -ne 0 ]];
потім
продовжувати
бути
echo $i
зроблено

Оператор Continue у циклі While в Linux
Як ми бачимо, оператор continue переходить до початку блоку та починає виконання команд, пропускаючи наступні команди всередині блоку. Цикл while виконує ітерацію лише для значення змінна i менше ніж 30, тому умова if перевіряє, чи є змінна i ділиться на 5, і якщо це не так, ми повторюємо ще раз, використовуючи continue і збільшуємо значення змінної i. The змінна i відтворюється, лише якщо воно ділиться на 5, тому умова if оцінюється як false, і ми не зустрічаємо оператор continue і перенос із звичайним потоком циклу. Це зроблено, щоб уникнути реєстрації кожного числа та друкувати лише ті числа, які не відповідають шаблону чи умові оператора if чи інших умовних операторів.
Часті запитання
1. Що таке ` while`> цикл у сценаріях Bash?
Аwhile>loop — це інструкція потоку керування в сценаріях Bash, яка дозволяє певному блоку коду виконуватися неодноразово, доки виконується задана умова. Цикл забезпечує спосіб автоматизації повторюваних завдань і є фундаментальною конструкцією в сценаріях і програмуванні.
список ініціалізації python
2. Як виглядає синтаксис ` while`> переглядати цикл у Bash?
Основний синтаксис awhile>цикл у Bash виглядає наступним чином:
поки [умова]
робити
# Код, який буде виконано, поки умова виконується
зроблено
` condition`> це перевірка, яка виконується перед кожною ітерацією циклу. Якщо умова виконується, код у циклі виконується. Якщо умова хибна, цикл завершується, і сценарій продовжує виконання наступної команди після ` done`> заява.
3. Яка роль ` (( ... ))`> побудувати в Bash while> петля?
` (( ... ))`> construct у Bash використовується для арифметичних операцій. У контексті ` while`> циклу, він часто використовується для оцінки арифметичних умов.
Наприклад: ` ((i <10))> `>перевіряє, чи змінна ` i`> менше 10. Це дозволяє використовувати арифметичні вирази безпосередньо в умові циклу, що робить його особливо корисним під час числових порівнянь.
4. Як створити нескінченний цикл за допомогою ` while`> в Bash?
Нескінченний цикл у Bash можна створити за допомогою умови, яка завжди оцінюється як true.
Наприклад:
поки правда
робити
# Код для нескінченного циклу
зроблено
Крім того, ви можете використовувати ненульову константу в умові, наприклад ` while [ 1 ]`> , щоб досягти такого ж результату. Нескінченні цикли корисні в ситуаціях, коли потрібне безперервне виконання, доки його не буде перервано вручну.
Висновок
У цій статті ми обговорили сценарій BASH циклу while, який виявився універсальним інструментом для багаторазового виконання блоку коду на основі заданої умови. Основний синтаксис передбачає визначення умови в квадратних дужках, що дозволяє гнучкі ітерації. У статті досліджуються різноманітні застосування циклів while, включаючи читання з файлів, створення нескінченних циклів, фіксовані ітерації, аналіз аргументів командного рядка та використання операторів break і continue. Від синтаксису в стилі C до інтерактивного запису файлів, кожен приклад демонструє адаптивність циклу для вирішення низки потреб сценаріїв. Цей вичерпний огляд підкреслює важливість циклу while у сценаріях BASH, забезпечуючи надійний механізм для контрольованого повторення та ефективного виконання коду.