Как написать BASH & # 39; для & # 39; петля

Как использовать BASH & # 39; для & # 39; цикл в сценариях оболочки

BASH (расшифровывается как Bourne Again Shell) – это язык сценариев, используемый большинством операционных систем на основе Linux и UNIX.

Вы можете запускать команды BASH в окне терминала одну за другой или добавлять команды в текстовый файл для создания сценария оболочки.

Самое замечательное в написании сценариев оболочки – то, что вы можете запускать их снова и снова. Например, представьте, что вам нужно добавить пользователя в систему, установить его разрешения и управлять его начальной средой. Вы можете либо записать команды на листе бумаги и запускать их по мере добавления новых пользователей, либо вы можете написать один скрипт и просто передать параметры в этот скрипт.

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

Ключевой частью любого языка программирования и написания сценариев является возможность снова и снова запускать один и тот же фрагмент кода.

Есть несколько способов повторить код (также известный как циклы). В этом руководстве вам будет показано, как написать цикл for.

Цикл for повторяет определенный раздел кода снова и снова. Они полезны для того, чтобы ряд команд продолжал работать до тех пор, пока не будет выполнено определенное условие, после чего они остановятся.

В этом руководстве вам будет показано пять способов использования цикла for в скрипте BASH.

Перед началом работы

Прежде чем вы начнете с примерами цикла for, вам нужно открыть окно терминала и выполнить следующие шаги:

  1. Введите скрипты mkdir (подробнее о mkdir читайте здесь).

  2. Введите CD-скрипты (это изменит каталог на скрипты ).

  3. Введите nano examplen.sh (где n – пример, над которым вы работаете).

  4. Введите сценарий.

  5. Нажмите CTRL + O , чтобы сохранить, и CTRL + X , чтобы выйти.

  6. Запустите bash examplen.sh (опять же, пример, с которым вы работаете – n ).

Как перебрать список

 #!/bin/bash для номера в 1 2 3 4 5doecho $ numberdoneexit 0 

BASH способ использования циклов for несколько отличается от того, как большинство других языков программирования и сценариев обрабатывают циклы for. Давайте разберем сценарий.

В цикле «все» в BASH операторы между do и done выполняются один раз для каждого элемента в списке.

В приведенном выше примере список – это все, что идет после слова в (т.е. 1 2 3 4 5).

Каждый раз, когда цикл повторяется, следующее значение в списке вставляется в переменную, указанную после слова “for” . В приведенном выше цикле переменная называется число .

Оператор echo используется для отображения информации на экране.

Следовательно, этот пример берет числа от 1 до 5 и выводит их один за другим на экран:

  • 1
  • 2
  • 3
  • 4
  • 5

Как выполнить цикл между начальной и конечной точкой

Проблема с приведенным выше примером состоит в том, что если вы хотите обработать больший список (скажем, от 1 до 500), потребовались бы годы, чтобы набрать все числа в первую очередь.

Это подводит нас ко второму примеру, который показывает, как указать начальную и конечную точку:

 #!/bin/bashfor число в {1..10} doecho "$ number" doneexit 0 

Правила в основном одинаковы. Значения после слова “ in” составляют список для итерации, и каждое значение в списке помещается в переменную (т.е. число), и каждый раз, когда цикл повторяется, операторы между do и done выполняются.

Основным отличием является способ формирования списка. Фигурные скобки {} в основном обозначают диапазон, и диапазон, в данном случае, составляет от 1 до 10 (две точки разделяют начало и конец диапазона).

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Тот же цикл мог бы быть написан так, с синтаксисом, идентичным первому примеру:

 для числа в 1 2 3 4 5 6 7 8 9 10 

Как пропустить числа в диапазоне

В предыдущем примере показано, как выполнить цикл между начальной и конечной точкой, поэтому теперь мы рассмотрим, как пропустить числа в диапазоне.

Представьте, что вы хотите переключаться между 0 и 100, но показывать только каждое десятое число. Следующий скрипт показывает, как это сделать:

 #!/bin/bashfor число в {0..100..10} doecho "$ number" doneexit 0 

Правила в основном одинаковы. Существует список, переменная и набор операторов, которые должны выполняться между do и done . Список на этот раз выглядит так: {0..100..10}.

Первое число равно 0, а конечное число равно 100. Третье число (10) – это количество элементов в списке, которое оно будет пропускать.

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

  • 0
  • 10
  • 20
  • 30
  • 40
  • 50
  • 60
  • 70
  • 80
  • 90
  • 100

Более традиционный поиск петли

BASH способ написания циклов немного странен по сравнению с другими языками программирования.

Однако вы можете написать цикл for в стиле, аналогичном языку программирования C, например:

 #!/bin/bashfor ((число = 1; число <100; число ++)) {if (($ number% 5 == 0)) thenecho "$ число делится на 5" fi} выход 0 

Цикл начинается с установки номера переменной в 1 ( номер = 1 ). Цикл будет повторяться, пока значение числа меньше 100 ( число <100 ). Значение число изменяется, добавляя к нему 1 после каждой итерации ( номер ++ ).

Все между фигурными скобками выполняется через каждую итерацию цикла.

Бит между фигурными скобками проверяет значение числа , делит его на 5 и сравнивает остаток с 0. Если остаток равен 0, то число делится на 5 и затем отображается на экране. ,

Например:

  • 5 делится на 5
  • 10 делится на 5
  • 15 делится на 5

Если вы хотите изменить размер шага итерации, вы можете изменить раздел number ++ на number = number + 2 , number = number + 5 или число = число + 10 и т. д.

Это число может быть уменьшено до число + = 2 или число + = 5 .

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

Для циклов можно сделать больше, чем повторять списки чисел. На самом деле вы можете использовать вывод других команд в качестве списка.

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

 #!/bin/bash 
для файла в ./*.mp3dompg -w ./wavs/"$ndomfile enj".wav "$ file" сделано

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

Команда mpg преобразует файл MP3 в формат WAV. Тем не менее, вам, вероятно, нужно сначала установить его, используя менеджер пакетов.

Оцените статью
Solutics.ru
Добавить комментарий