Огляд циклу в сценарії оболонок

Для циклу в Shell Scripting в цьому, скажімо, якщо ми хочемо виконувати завдання або операцію повторно, ми можемо записати один і той же код стільки разів, що є трудомістким завданням, а також неефективним. Щоб уникнути таких типів сценаріїв, ми можемо використовувати петлі типу циклу на мові програмування. Отже, цикл використовується для виконання певного завдання, такого як додавання / множення чи будь-яка інша операція протягом певної кількості разів, поки умова припинення не виконується в будь-якій операційній системі. Нам не потрібно писати один і той же код знову і знову, використовуючи для циклу.

Синтаксис для циклу

Синтаксис циклу для циклу в сценарії оболонки може бути представлений різними способами, як показано нижче:

1. Перший метод синтаксису

for var in list
do
command1
command2
done

З наведеного вище прикладу ми маємо заздалегідь визначені ключові слова або вбудовані ключові слова, такі як для, робити, робити та ін., Тоді як список - це список змінних або список слів або список чисел, а var - ім'я змінної під час цієї ітерації. Якщо список не надається, bash прийме позиційний параметр, який ми передали в оболонці. У наведеному вище циклі для циклу він виконує всі команди, які знаходяться між "виконаними" і "зробленими" протягом n кількості разів, де n - це розмір списку. Наприклад, якщо розмір списку становить 5 із числами від 1 до 5, то під час першої ітерації 1 буде зберігатися у var, а операції з var виконуватимуться тілом циклу for, де є команди.

2. Другий метод синтаксису

for ( ( expr1; expr2; expr3 ))
do
command1
command2
….
done

У наведеному вище синтаксисі, якщо ми спостерігаємо, цей синтаксис схожий на синтаксис циклу for на мові програмування c. У циклі for є три вирази, де перший вираз призначений для ініціалізації, другий - для умовної перевірки, а третій - для оновлення ітератора. Виконання вище для циклу почнеться так, перш ніж запустити першу ітерацію expr1, що означає, що ініціалізація буде виконана після того, як операції / команди між виконанням і виконанням будуть виконані ітераційно, поки expr2 не оцінить справжнє і після кожної ітерації expr3 оновить оновлення значення ітератора (лічильник), щоб операції виконувались над наступним елементом або значенням у списку, масиві чи рядку.

Діаграма потоку - для циклу в сценарії оболонок

Розглянемо приклад циклу та обговоримо його потік за допомогою діаграми потоків.

for filename in *.dat
do
echo cp $fname orig_$fname
done

На наведеній вище діаграмі потоків ми пояснюємо потік циклу, який повторюється над списком імен і є чотири кроки в потоці, такі як потік процесу, змінне значення, процес та stdout. У потоці процесу він пояснює, коли запускається цикл for, значення ітератора, перевіряючи умову, якщо задовольняє, запускає процес інакше закінчує процес. У змінному значенні, ітерації за допомогою ітерації, ми отримаємо в ньому ім’я файлу, наприклад textfile.dat, і під час процесу він виконує оператор echo, де відображає оператор копіювання зі старим іменем файлу та новим ім'ям файлу в stdout. Отже, це потік циклу для циклу, який ітералізує список вхідних імен файлів.

Вихід:

Як цикл працює в програмі Shell Scripting?

Сценарій циклу в оболонці працює наступним чином, коли оболонка бачить ключове слово, вона знає, що їй потрібно повторити набір команд один раз для кожного елемента в списку. Кожен раз, коли запускається ітерація, елемент у списку присвоюється змінній var, а var обробляється за допомогою списку команд, присутніх у циклі між виконанням і виконанням, виконуються перед переходом до наступного елемента в списку або наступної ітерації. Ми отримаємо доступ до значення в var, використовуючи $ перед змінною, так що, коли скрипт оболонки обробляє його, значення замість нього замінює var.

Приклад:

for filename in *.txt
do
ls filename
done

У вищенаведеній програмі ми передаємо список файлів .txt як вхід до циклу for, а ім'я змінної - це ім'я файлу, у якому збережеться .txt, а потім обробить ім'я файлу, перерахувавши .txt файл у назві файлу, а потім той самий процес буде повторюватися, поки не буде виконана вся обробка файлів .txt.

Вихід:

Приклади для циклу

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

Приклад №1

Давайте список статичних значень як вхід для циклу, і як він буде виконуватися, буде показано нижче:

for a day in Fri Thu Wed Tue Mon
do
echo “Todays day is $day”
done

У наведеному вище прикладі ми не повинні передавати вхідні значення за допомогою, оскільки роздільник, якщо ми передамо це, вважатиме, що роздільник є також значенням типу "Пт", і ми не повинні перераховувати значення, використовуючи подвійні лапки ", якщо ми передаємо їх подвійними лапками, скрипт оболонки буде розглядати всі значення як єдине значення.

Приклад o / p: Сьогодні день: Пт Чт Ср Вт Пн (якщо ми використовуємо подвійні лапки)

Вихід:

Приклад №2

Тепер давайте подивимось ще один приклад, де ми використовуємо для для перед списком введення, як показано нижче:

Month = “Jan Feb Mar Apr May Jun”
for mon in $Month
do
echo “Month is $mon”
done

У наведеному вище прикладі ми виконуємо те саме виконання для циклу, що і в наведеному вище прикладі, але замість введення списку введення буде здійснено за допомогою ключового слова "in". У сценаріях оболонок кожна змінна повинна бути представлена ​​у подвійних лапках, але є кілька винятків, наприклад, якщо ми використовуємо подвійні лапки в $ Місяць вище для циклу рядка, то вона буде розглядати цілі слова як єдиний рядок. Тож нам потрібно дбати про це.

Вихід:

Приклад №3

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

Назвіть назву сценарію як sample.sh та його вміст, як показано нижче:

for num
do
echo “Number is $num”
done
./sample.sh 1 2 3 4 5

У наведеному вище прикладі вхід для циклу передається зі списку аргументів, наданих до сценарію, так що для кожного аргументу він обробляє всі команди та відображає вихід, поки всі аргументи не повторюються.

Вихід:

Висновок - для циклу в Shell Scripting

Нарешті, справа в циклі в сценарії оболонок. Ми обговорили, що таке цикл у сценарії оболонок, синтаксис циклу, його схема потоку, що пояснює потік циклу, як цикл працює в оболонці та приклади циклу в сценарії оболонок. Сподіваюся, ви добре зрозумієте цикл, як його використовувати в сценаріях оболонок та виконувати його після прочитання цієї статті.

Рекомендовані статті

Це посібник для циклу For у програмі Shell Scripting. Тут ми обговорюємо вступ, як цикл працює в сценарії оболонок, діаграма потоку та приклад циклу. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -

  1. Петлі в R
  2. Іскровий кадр даних SQL
  3. Багатовимірна база даних
  4. Переваги візуалізації даних

Категорія: