Циклічні оператори в сценаріях оболонки: Всього є 3 оператори циклу, які можна використовувати в програмуванні bash
Зміст
- Оператор `while` у скрипті оболонки в Linux
- Оператор `for` у скрипті оболонки в Linux
- Оператор `until` у скрипті оболонки в Linux
- Приклади операторів циклу
Щоб змінити потік операторів циклу, використовуються дві команди:
- перерва
- продовжувати
Їх описи та синтаксис такі:
Оператор `while` у скрипті оболонки в Linux
Тут команда оцінюється та виконується на основі результуючого циклу. Якщо для команди встановлено значення false, цикл буде припинено що.
#/bin/bash while do done>
Реалізація циклу 'While' у сценарії оболонки.
Спочатку ми створюємо файл за допомогою текстового редактора в Linux. У цьому випадку ми використовуємо редактор `vim`.
vim looping.sh>
Ви можете замінити looping.sh на потрібне ім’я.
Потім ми робимо наш сценарій виконуваним за допомогою команди `chmod` в Linux.
chmod +x looping.sh>
#/bin/bash
а=0
# Це менше оператора
#Повторюйте цикл, доки не буде менше 10
поки [ $a -lt 10 ]
робити
# Вивести значення
echo $a
# збільшити значення
a=`вираз $a + 1`
зроблено
Вихід:

Цикл while в Linux
Пояснення:
-
#/bin/bash>: вказує, що сценарій має інтерпретуватися за допомогою оболонки Bash. -
a=0>: Ініціалізує зміннуa>зі значенням 0. -
while [ $a -lt 10 ]>: Ініціює цикл while, який триває доти, доки вказано значенняa>менше 10. -
do>: Позначає початок тіла циклу. -
echo $a>: друкує поточне значенняa>консоль. -
a=>вираз $a + 1 : збільшує значенняa>від 1. Theexpr>Команда використовується для арифметичних виразів. -
done>: Позначає кінець циклу.
Оператор `for` у скрипті оболонки в Linux
Цикл for працює зі списками елементів. Він повторює набір команд для кожного елемента в списку.
Тут var — це ім’я змінної, а від word1 до wordN — це послідовності символів, розділених пробілами (слова). Кожного разу, коли виконується цикл for, значення змінної var встановлюється на наступне слово в списку слів від word1 до wordN.
Синтаксис:
#/bin/bash for in do done>
Реалізація циклу `for` з оператором `break` у сценарії оболонки.
Спочатку ми створюємо файл за допомогою текстового редактора в Linux. У цьому випадку ми використовуємо редактор `vim`.
vim for.sh>
Ви можете замінити for.sh на потрібне ім’я.
Потім ми робимо наш сценарій виконуваним за допомогою команди `chmod` в Linux.
chmod +x for.sh>
#/bin/bash
#Початок циклу for
для a в 1 2 3 4 5 6 7 8 9 10
робити# якщо a дорівнює 5, розірвати цикл
якщо [ $a == 5 ]
потім
перерва
бути# Вивести значення
echo Ітерація № $a
зроблено
Вихід:

Інструкція Break для циклу в Linux
Пояснення:
#/bin/bash>: вказує, що сценарій має інтерпретуватися за допомогою оболонки Bash.for a in 1 2 3 4 5 6 7 8 9 10>: ініціює цикл for, який перебирає значення від 1 до 10, присвоюючи кожне значення зміннійa>у кожній ітерації.do>: Позначає початок тіла циклу.if [ $a == 5 ]>: перевіряє поточне значенняa>дорівнює 5.then>: Позначає початок умовного блоку, який буде виконано, якщо умова виконується.break>: Виходить із циклу, якщо умова виконується.
fi>: Позначає кінець умовного блоку.
echo 'Iteration no $a'>: друкує повідомлення із зазначенням поточного номера ітерації.done>: Позначає кінець циклу.
Сценарій встановлює цикл for, який повторює значення від 1 до 10. Під час кожної ітерації він перевіряє, чи значенняa>дорівнює 5. Якщо так, цикл виходить за допомогоюbreak>заява. В іншому випадку він друкує повідомлення із зазначенням поточного номера ітерації. Цикл продовжується до завершення всіх ітерацій або доки не зустрінеться оператор break.
Реалізація циклу `for` з оператором `continue` у сценарії оболонки.
Спочатку ми створюємо файл за допомогою текстового редактора в Linux. У цьому випадку ми використовуємо редактор `vim`.
vim for_continue.sh>
Ви можете замінити for_continue.sh на потрібне ім’я.
Потім ми робимо наш сценарій виконуваним за допомогою команди `chmod` в Linux.
chmod +x for_continue.sh>
#/bin/bash
для a в 1 2 3 4 5 6 7 8 9 10
робити# якщо a = 5, то продовжити цикл and
# не переходити до рядка 8якщо [ $a == 5 ]
потім
продовжувати
бути
echo Ітерація № $a
зроблено
Вихід:

оператор continue у циклі for у Linux
Пояснення:
-
#/bin/bash>: вказує, що сценарій має інтерпретуватися за допомогою оболонки Bash. -
for a in 1 2 3 4 5 6 7 8 9 10>: ініціює цикл for, який перебирає значення від 1 до 10, присвоюючи кожне значення зміннійa>у кожній ітерації. -
do>: Позначає початок тіла циклу. -
if [ $a == 5 ]>: перевіряє поточне значенняa>дорівнює 5.-
then>: Позначає початок умовного блоку, який буде виконано, якщо умова виконується.-
continue>: Пропускає решту тіла циклу та переходить до наступної ітерації, якщо умова виконується.
-
-
fi>: Позначає кінець умовного блоку.
-
-
echo 'Iteration no $a'>: друкує повідомлення із зазначенням поточного номера ітерації. Цей рядок пропускається, якщоa>дорівнює 5 завдякиcontinue>заява. -
done>: Позначає кінець циклу.
Сценарій встановлює цикл for, який повторює значення від 1 до 10. Під час кожної ітерації він перевіряє, чи значенняa>дорівнює 5. Якщо це так, цикл продовжується до наступної ітерації без виконання решти операторів у тілі циклу. В іншому випадку він друкує повідомлення із зазначенням поточного номера ітерації. Цикл продовжується до завершення всіх ітерацій.
Оператор `until` у скрипті оболонки в Linux
Цикл доки виконується стільки разів, скільки умова/команда має значення false. Цикл завершується, коли умова/команда стає істинною.
Синтаксис:
#/bin/bash until do done>
Реалізація циклу until у сценарії Shell
Спочатку ми створюємо файл за допомогою текстового редактора в Linux. У цьому випадку ми використовуємо редактор `vim`.
vim until.sh>
Ви можете замінити до. sh з потрібною назвою.
Потім ми робимо наш сценарій виконуваним за допомогою команди `chmod` в Linux.
chmod +x until.sh>
#/bin/bash
а=0
# -gt більше ніж оператор
#Повторюйте цикл, доки a не перевищить 10до [$a -gt 10]
робити# Вивести значення
echo $a# збільшити значення
a=`вираз $a + 1`
зроблено
Вихід:

Цикл Until в Linux
Пояснення:
-
#/bin/bash>: вказує, що сценарій має інтерпретуватися за допомогою оболонки Bash. -
a=0>: Ініціалізує зміннуa>зі значенням 0. -
until [ $a -gt 10 ]>: Ініціює цикл до тих пір, поки значення не триваєa>не більше 10. -
do>: Позначає початок тіла циклу. -
echo $a>: друкує поточне значенняa>консоль. -
a=>вираз $a + 1 : збільшує значенняa>від 1. Theexpr>Команда використовується для арифметичних виразів. -
done>: Позначає кінець циклу.
Примітка: Сценарії оболонки є мовою, яка чутлива до регістру, а це означає, що під час написання сценаріїв потрібно дотримуватися правильного синтаксису.
Приклади операторів циклу
1. Ітерація кольорів за допомогою циклу For
Спочатку ми створюємо файл за допомогою текстового редактора в Linux. У цьому випадку ми використовуємо редактор `vim`.
vim color.sh>
Ви можете замінити color.sh на потрібне ім’я.
Потім ми робимо наш сценарій виконуваним за допомогою команди `chmod` в Linux.
chmod +x color.sh>
#/bin/bash
КОЛЬОРИ=червоний зелений синій
# цикл for продовжується, поки не буде зчитано всі значення з COLORS
для COLOR у $COLORS
робити
echo COLOR: $COLOR
зроблено
Вихід:

Для Linux
Пояснення:
- Ініціалізація кольорів:
COLORS='red green blue'>: ініціалізує змінну з іменемCOLORS>зі списком значень кольорів (червоний, зелений і синій), розділених пробілами.
- Для ітерації циклу:
for COLOR in $COLORS>: ініціює цикл for, який повторює кожне значення вCOLORS>змінна.- Тіло петлі:
echo 'COLOR: $COLOR'>: друкує повідомлення для кожного кольору, відображаючи поточне значення кольору.
- Тіло петлі:
- Цикл продовжується, доки не обробить усі значення, присутні в
COLORS>змінна.
Цей приклад демонструє простий цикл for у Bash, який перебирає список кольорів, що зберігаються вCOLORS>змінна. Цикл друкує повідомлення для кожного кольору, вказуючи поточний колір, що обробляється. Цикл повторюється, доки не буде вичерпано всі значення кольорів.
2. Створення нескінченного циклу з while true у сценарії оболонки
Спочатку ми створюємо файл за допомогою текстового редактора в Linux. У цьому випадку ми використовуємо редактор `vim`.
vim infinite.sh>
Ви можете замінити infinite.sh бажаним ім’ям.
Потім ми робимо наш сценарій виконуваним за допомогою команди `chmod` в Linux.
chmod +x infinite.sh>
#/bin/bash
конвертувати ціле число в рядок javaпоки правда
робити# Команда для виконання
# сон 1 означає, що він переходить у режим сну протягом 1 секунди
echo Привіт, я нескінченна петля
спати 1
зроблено
Вихід:

нескінченний цикл в linux
Пояснення:
Структура нескінченного циклу:
while true>: Ініціює цикл while, який триває нескінченно як умоваtrue>завжди правда.- Тіло петлі:
echo 'Hi, I am infinity loop'>: друкує повідомлення про те, що сценарій знаходиться в нескінченному циклі.sleep 1>: призупиняє виконання циклу на 1 секунду перед наступною ітерацією.
- Тіло петлі:
- Цикл триває нескінченно, багаторазово виконуючи команди в своєму тілі.
Цей приклад демонструє створення нескінченного циклу за допомогою конструкції while true у Bash. Цикл безперервно друкує повідомлення, яке вказує на його статус нескінченного циклу, і містить команду sleep 1, викликаючи затримку в одну секунду між ітераціями. Нескінченні цикли часто використовуються для процесів, які повинні виконуватися безперервно, доки їх не буде перервано вручну.
3. Інтерактивний цикл підтвердження імені
Спочатку ми створюємо файл за допомогою текстового редактора в Linux. У цьому випадку ми використовуємо редактор `vim`.
vim name.sh>
Ви можете замінити name.sh на потрібне ім’я.
Потім ми робимо наш сценарій виконуваним за допомогою команди `chmod` в Linux.
chmod +x name.sh>
#/bin/bash
ПРАВИЛЬНО=n
а [ $CORRECT == n ]
робитиЦикл # припиняється, коли ви вводите y, тобто коли ваше ім’я правильне
# -p означає підказку із запитом введенняread -p Введіть своє ім'я: NAME
read -p Чи правильно ${NAME}? ПРАВИЛЬНО
зроблено
Вихід:

Інтерактивний скрипт в Linux
Пояснення:
- Ініціалізація:
CORRECT=n>: ініціалізує змінну з іменемCORRECT>зі значенням n. Ця змінна використовується для керування циклом.
- Інтерактивний цикл:
while [ '$CORRECT' == 'n' ]>: Ініціює цикл while, який триває доти, доки не встановлено значенняCORRECT>дорівнює n.- Тіло петлі:
read -p 'Enter your name:' NAME>: пропонує користувачеві ввести своє ім’я та зберігає введені дані вNAME>змінна.read -p 'Is ${NAME} correct? ' CORRECT>: просить користувача підтвердити правильність введеного імені та оновлюєCORRECT>змінна відповідно.
- Тіло петлі:
- Цикл продовжується, доки користувач не введе y (вказуючи правильну назву).
Цей приклад демонструє інтерактивний цикл, який пропонує користувачеві ввести своє ім’я, а потім запитує підтвердження. Цикл продовжується, доки користувач не підтвердить, що введене ім’я є правильним, ввівши y. Цикл використовує ` read> `>для введення користувачем і оновлює ` CORRECT> `>змінна для керування потоком контуру.
Висновок
У цій статті ми обговорювали оператори циклу в сценаріях Bash, охоплюючиwhile>,for>, іuntil>петлі. Це знайомить з використаннямbreak>іcontinue>оператори для зміни поведінки циклу. Практичні приклади ілюструють реалізацію циклів, включаючи ітерацію значень кольорів, створення нескінченних циклів і створення інтерактивного циклу для перевірки введених користувачем даних. Посібник пропонує стислий, але інформативний ресурс для розуміння та використання конструкцій циклу в сценаріях Bash.