Примеры сценариев оболочки Linux для цикла BASH 'for'
Что нужно знать
- В баше для цикл, все операторы между делать а также сделано выполняются один раз для каждого элемента в списке или диапазоне номеров.
- С большим списком используйте в {list} для перехода между начальной и конечной точкой. Используйте многоточие для перебора полного диапазона чисел, например, для номера в {1..10}.
- Чтобы пропустить определенные числа, добавьте к диапазону третье число. Например, используйте {0..100..10} чтобы перечислить только каждое 10-е число.
В языке программирования или сценариях Bash предлагает несколько способов повторения кода - процесс, называемый циклическим, - где для цикл повторяет определенный участок кода. Это позволяет запускать серию команд до тех пор, пока не будет выполнено определенное условие. В этом руководстве мы покажем вам, как написать Bash. для Петля.
Как перемещаться по списку
Языки сценариев, такие как Bash, имеют аналогичные программные конструкции, как и другие языки. Например, параметры импорта получить ввод с клавиатуры и сохраните эти входные данные как переменные, которые затем
Рассмотрим простой пример сценария под названием loop.sh:
#! / bin / bash
для числа в 1 2 3 4 5
делать
эхо $ число
сделано
выход 0
Способ использования Bash для циклы несколько отличаются от того, как другие языки программирования и сценариев обрабатывают для петли. Давайте разберем сценарий.
В BASH для цикл, все операторы между делать а также сделано выполняются один раз для каждого элемента в списке. В этом примере список - это все, что идет после слова в-цифры 1 2 3 4 5.
Каждый раз, когда цикл повторяется, следующее значение в списке вставляется в переменную, указанную после слова для. В приведенном выше цикле переменная называется количество.
В эхо Выписка выводит информацию на экран. Таким образом, в этом примере числа от 1 до 5 выводятся на экран один за другим:

Как перемещаться между начальной и конечной точкой
Проблема с этим сценарием loop.sh заключается в том, что если вы хотите обработать список большего размера (например, от 1 до 500), потребуется много времени, чтобы ввести все числа. Вместо этого укажите начальную и конечную точки:
#! / bin / bash
для номера в {1..10}
делать
эхо "$ число"
сделано
выход 0
Правила такие же. Значения после слова в составляют список для итерации, и каждое значение в списке помещается в переменную (то есть число), и каждый раз, когда цикл повторяется, операторы между делать а также сделано выполняются.
Основное отличие - способ формирования списка. Фигурные скобки обозначают диапазон, а диапазон в данном случае составляет от 1 до 10 (две точки разделяют начало и конец диапазона).
Таким образом, в этом примере проходит каждое число от 1 до 10 и выводится число на экран.
Тот же цикл можно было бы написать так: синтаксис идентично первому примеру:
для числа в 1 2 3 4 5 6 7 8 9 10
Как пропускать числа в диапазоне
В предыдущем примере показано, как переключаться между начальной и конечной точкой. Вот как можно пропускать числа в диапазоне.
Например, чтобы выполнить цикл между 0 и 100, но отображать только каждое десятое число, используйте следующий сценарий для получения этого вывода:
#! / bin / bash
для числа в {0..100..10}
делать
эхо "$ число"
сделано
выход 0
Правила такие же. Существует список, переменная и набор операторов, которые должны выполняться между делать а также сделано. Список на этот раз выглядит так: {0..100..10}.
Первое число - 0, а конечное число - 100. Третье число (10) - это количество элементов в списке, которые он пропустит.
Таким образом, приведенный выше пример отображает следующий вывод:

Практический пример
Циклы For делают больше, чем просто перебирают списки чисел. Например, используйте вывод других команд в качестве списка.
В следующем примере показано, как конвертировать аудиофайлы из MP3 к WAV:
#! / bin / bash
для файла в ./*.mp3
делать
mpg -w ./wavs/"${file}".wav "$ файл"
сделано
Список в этом примере - это каждый файл с расширением .MP3 в текущей папке, а переменная - это файл.
Команда mpg конвертирует файл MP3 в WAV. Однако вам, вероятно, сначала потребуется установить этот инструмент с помощью диспетчера пакетов.