Skip to main content

Примеры скриптов командной строки Linux для цикла Loop

Цикл for в терминале bash (Апрель 2025)

Цикл for в терминале bash (Апрель 2025)
Anonim

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

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

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

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

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

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

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

В этом руководстве вам будет показано пять способов использования цикла 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 / bashfor number in 1 2 3 4 5doecho $ numberdoneexit 0

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

В BASH "for" loop все, утверждения между делать а также сделанный выполняются один раз для каждого элемента в списке.

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

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

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

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

  • 1
  • 2
  • 3
  • 4
  • 5

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

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

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

#! / bin / bashfor number in {1..10} doecho "$ number" doneexit 0

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

Основное различие заключается в том, как формируется список. Кудрявые скобки {} в основном обозначают диапазон, и диапазон в этом случае составляет от 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 number in {0..100..10} doecho "$ number" doneexit 0

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

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

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

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

Более традиционный взгляд на цикл

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

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

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

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

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

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

Например:

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

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

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

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

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

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

#! / Bin / Башдля файла в ./*.mp3dompg -w ./wavs/"${file}".wav "$ file" done

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

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