Skip to content

Як написати BASH ‘для’ Loop

6 de Липень de 2021

Що знати

  • В Баш для цикл, всі оператори між робити і зроблено виконуються один раз для кожного елемента в списку або діапазоні чисел.
  • Маючи великий список, використовуйте в {list} для циклу між початковою та кінцевою точками. Використовуйте еліпсис для ітерації повного діапазону чисел, наприклад, для номера в {1..10}.
  • Щоб пропустити певні числа, додайте до діапазону третє число. Наприклад, використання {0..100..10} перераховувати лише кожне 10-те число.

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

Як переглядати список

Мови сценаріїв, такі як Bash, мають подібні конструкції програмування, як інші мови. Наприклад, параметри імпорту отримують вхідні дані з клавіатури і зберігають ці входи як змінні, які потім виконують певну дію на основі значення вхідних параметрів. Розглянемо простий приклад сценарію з назвою loop.sh: #! / bin / bash
для числа в 1 2 3 4 5
робити
echo $ number
зроблено
вихід 0

Спосіб використання Bash для цикли дещо відрізняється від способу обробки інших мов програмування та сценаріїв для петлі. Давайте розберемо сценарій. У БАШ для цикл, всі оператори між робити і зроблено виконуються один раз для кожного пункту у списку. У цьому прикладі список – це все, що йде після слова в-цифри 1 2 3 4 5. Кожного разу, коли цикл повторюється, наступне значення у списку вставляється у змінну, зазначену після слова для. У наведеному вище циклі викликана змінна номер. Заява ехо відображає інформацію на екрані. Отже, цей приклад бере числа від 1 до 5 і виводить кожне число по одному на екран:

Як робити петлю між початковою та кінцевою точками

Проблема цього сценарію loop.sh полягає в тому, що якщо ви хочете обробити більший список (наприклад, від 1 до 500), для введення всіх цифр знадобиться вік. Замість цього вкажіть початкову та кінцеву точки: #! / Bin / bash
для номера в {1..10}
робити
echo “$ number”
зроблено
вихід 0

Правила однакові. Значення після слова в складають список для перебору, і кожне значення в списку поміщається у змінну (тобто число), і кожен раз, коли цикл повторюється, оператори між робити і зроблено виконуються. Головна відмінність – це спосіб формування списку. Фігурні дужки позначають діапазон, і діапазон, у цьому випадку, становить від 1 до 10 (дві крапки розділяють початок і кінець діапазону). Отже, цей приклад проходить через кожне число від 1 до 10 і виводить число на екран. Той самий цикл міг бути написаний так, із синтаксисом, ідентичним першому прикладу: для числа в 1 2 3 4 5 6 7 8 9 10

Як пропустити цифри в діапазоні

Попередній приклад показав, як робити цикл між початковою та кінцевою точками. Ось як пропустити цифри в діапазоні. Наприклад, щоб прокрутити від 0 до 100, але показати лише кожне десяте число, використовуйте такий сценарій, щоб отримати цей результат: #! / Bin / bash
для номера в {0..100..10}
робити
echo “$ number”
зроблено
вихід 0

Правила однакові. Існує список, змінна та набір операторів, між якими слід виконати робити і зроблено. Список цього разу виглядає так: {0..100..10}. Перше число дорівнює 0, а кінцеве число – 100. Третє число (10) – це кількість елементів у списку, яку він пропускає. Отже, наведений вище приклад відображає такий результат:

альтернативний вихід циклу bash

Практичний приклад

Для циклів робимо більше, ніж ітерації списків чисел. Наприклад, використовуйте висновок інших команд як список. У наступному прикладі показано, як конвертувати аудіофайли з MP3 у WAV: #! / Bin / bash
для файлу в ./*.mp3
робити
mpg -w ./wavs/”${file}”.wav “$ файл”
зроблено

Список у цьому прикладі – це кожен файл із розширенням .MP3 у поточній папці, а змінна – це файл. Команда mpg перетворює файл MP3 у формат WAV. Однак вам, ймовірно, спочатку потрібно встановити цей інструмент за допомогою диспетчера пакетів.