5 полезных примеров цикла Bash for

Представьте, что у вас есть каталог, заполненный тысячами файлов, и вас попросили обработать эти файлы один за другим. Звучит довольно утомительно, не так ли? Ну нет, если вы используете циклы For в сценарии Bash. Цикл for в скрипте bash — это волшебный инструмент, который может помочь вам автоматизировать любую повторяющуюся задачу, эффективно обрабатывая эти файлы без особых усилий. В этой статье мы обсудим циклы for в bash с некоторыми практическими примерами, чтобы сделать автоматизацию детской игрой.

Что такое цикл for в скрипте Bash

Цикл for — это управляющая структура, которая используется для выполнения повторяющихся задач или выполнения набора команд определенное количество раз. С помощью цикла for вы можете перебирать числа, списки, файлы или даже каталоги.

Bash For Loop: синтаксис стиля POSIX

Синтаксис стиля POSIX (Portable Operating System Interface) можно использовать с совместимыми с POSIX оболочками, такими как bash, и его можно использовать для перебора списка файлов, любой последовательности или даже вывода других команд. Вот синтаксис цикла for в сценарии bash:

для в делать

сделанный

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

В приведенном выше синтаксисе все означает следующее:

  • это определяемая пользователем переменная, которая содержит каждый элемент из .
  • относится к списку элементов, по которым цикл for необходим для итерации. Это может быть список чисел, строк, вывод команды и т.д.
  • Ключевое слово do означает начало цикла for.
  • содержит команды или операторы, которые будут выполняться для каждой итерации.
  • Ключевое слово done означает конец цикла for.

Давайте теперь посмотрим на несколько практических примеров, основанных на цикле for в стиле POSIX:

Пример 1: Цикл по заданному диапазону

#!/bin/bash # Вывести числа от 1 до 5 для i in $(seq 1 5); сделать эхо $ я сделал

используя скрипт bash для печати всех целых чисел от 1 до 5

В приведенном выше фрагменте часть $(seq 1 5) используется для создания списка целых чисел от 1 до 5. Затем он будет перебирать список один за другим, а затем каждое значение будет напечатано на новой строке.

печать целых чисел от 1 до 5

Пример 2: Цикл по массиву

#!/bin/bash fruit=(“Яблоко” “Банан” “Апельсин” “Виноград”) для фруктов в “${fruits[@]}”; выполнить echo “Фрукты: $fruit”

Скрипт bash для печати имен фруктов в массиве с циклом for

Массив — это структура данных, которая используется для хранения нескольких данных разных типов. В приведенном выше фрагменте:

  • Строка fruit=(“Apple” “Banana” “Orange” “Grapes”) используется для объявления массива, содержащего четыре разных названия фруктов.
  • Строка «для фруктов в «${фрукты[@]}”; do” устанавливает цикл For. Он указывает переменную “fruit” для хранения текущего значения элемента и “${fruits[@]}» в качестве массива для повторения. Знак «@» внутри «${фрукты[@]}“, представляет все элементы массива.
  • Строка «echo «Fruit: $fruit»» печатает название каждого фрукта на новой строке вместе со словом «Fruit» во время каждой итерации.
  • Наконец, последняя строка «done» означает конец цикла for.

Вот результат, который мы получим от приведенных выше команд:

печать всех названий фруктов в массиве

Пример 3: Цикл с подстановкой команд

#!/bin/bash для файла в $(ls); сделать эхо “Файл: $file” сделано

использование подстановки команд для печати всех имен файлов в каталоге

Подстановка команд работает следующим образом: сначала выполняется команда, а затем цикл for повторяет весь вывод команды. Команда для итерации помещается внутри «$()». В приведенном выше фрагменте:

  • В строке для файла в $(ls); сделать, часть $(ls) выполняет команду ‘ls’, а ее вывод (список файлов в текущем каталоге) используется в качестве входных данных для цикла. Цикл будет перебирать каждое имя файла, найденное в выходных данных.
  • Строка echo «File: $file» выводит значение переменной «file» вместе с префиксом «File:» во время каждой итерации. Переменная «file» содержит имя текущего файла, обрабатываемого в цикле.
  • Наконец, последняя строка «done» означает конец цикла for.

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

печать всех имен файлов с помощью сценария bash

Bash For Loop: синтаксис в стиле C

Синтаксис стиля C подходит пользователям, которые более привыкли к синтаксису цикла for в других языках, таких как C, C++, Java, JavaScript и т. д. Вот основной синтаксис цикла for в стиле C:

для ((; ; )) делать

сделанный

В приведенном выше синтаксисе:

  • относится к начальному значению, с которого будет начинаться переменная цикла.
  • определяет условие, от которого будет зависеть вывод; это условие проверяется на каждой итерации.
  • относится к значению, на которое необходимо обновить переменную цикла.
  • относится к командам или операторам, которые необходимо выполнять для каждой итерации.

Давайте теперь посмотрим на несколько практических примеров, основанных на цикле for в стиле C:

Пример 1: Печать нечетных чисел от 1 до 10

!#/bin/bash for((i = 1; i <= 10; i = i + 1)) do if (( i % 2 == 1 )) then echo "Odd Number: $i" fi doneиспользуя синтаксис стиля ac для цикла в bash для печати нечетных чисел от 1 до 10

В приведенном выше фрагменте:

  • Строка for((i = 1; i <= 10; i = i + 1)) инициализирует переменную цикла значением 1, проверяет, является ли «значение i меньше или равно 10» для каждой итерации, и, наконец, увеличивает значение переменной цикла. значение i, добавляя 1 к текущему значению после каждой итерации.
  • if (( i % 2 == 1 )) проверяет, равно ли значение остатка от деления текущего значения i на 2 1 или нет –
    • если делится, то выполняется строка echo «Odd Number: $i», печатающая значение i.
    • строка fi означает конец условия if.
  • Наконец, последняя строка разграничивает конец цикла for и выполняется в конце.

Вот результат, который вы получите для приведенного выше кода:

печать нечетных чисел от 1 до 10

Пример 2: Цикл по массиву

#!/bin/bash fruit=(“Яблоко” “Банан” “Апельсин” “Виноград”) for ((i = 0; i < ${#fruits[@]}; я++)); сделать эхо "Фрукты $((i+1)): ${фрукты[i]}" сделанныйскрипт bash с циклом for для печати всех элементов массива

В приведенном выше коде:

  • Fruits=(“Яблоко” “Банан” “Апельсин” “Виноград”) создает массив всех названий фруктов.
  • for ((i = 0; i < ${#fruits[@]}; i++)) сначала инициализирует переменную цикла «i» значением 0, которая также будет действовать как индексная переменная для массива, и цикл продолжается до тех пор, пока «i» меньше количества элементов в массиве «плоды» (обозначается как $ {# фрукты[@]}). Цикл увеличивает «i» на 1 на каждой итерации.
  • Так как индексы массива начинаются с 0, а мы хотим отображать их как начинающиеся с 1, в строке будет выводиться «Fruit $((i+1)): ${fruits[i]}» печатает значение, равное текущему индексу «i» плюс 1.
  • Наконец, последняя строка означает конец цикла for.

Вот вывод вышеприведенного цикла for:

печать значений в массиве

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)