Примеры сценариев оболочки 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 выводятся на экран один за другим:

пример цикла в сценарии bash

Как перемещаться между начальной и конечной точкой

Проблема с этим сценарием 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) - это количество элементов в списке, которые он пропустит.

Таким образом, приведенный выше пример отображает следующий вывод:

альтернативный вывод цикла bash

Практический пример

Циклы For делают больше, чем просто перебирают списки чисел. Например, используйте вывод других команд в качестве списка.

В следующем примере показано, как конвертировать аудиофайлы из MP3 к WAV:

#! / bin / bash
для файла в ./*.mp3
делать
mpg -w ./wavs/"${file}".wav "$ файл"
сделано

Список в этом примере - это каждый файл с расширением .MP3 в текущей папке, а переменная - это файл.

Команда mpg конвертирует файл MP3 в WAV. Однако вам, вероятно, сначала потребуется установить этот инструмент с помощью диспетчера пакетов.