#Linux - Оператор цикла for в Bash. Проход по всем элементам массива

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

2018.09.11            


1.jpeg Предметом изучения данного урока является специальная конструкция, позволяющая перебирать последовательности значений и обрабатывать каждые из них отдельно. В Bash такая возможность реализуется за счет цикла for. Стоит уточнить, что for может не только перебирать заранее подготовленные массивы, но и выполняться со счетчиком. Это будет рассмотрено далее в статье.

Ниже мы приводим пример Bash-скрипта c использованием цикла for для перебора различных наборов значений. Сразу за ним разъясняются синтаксические правила написания кода.

2.jpeg

Правила составления обычного цикла for:

  1. Конструкция начинается с ключевого слова for, за которым следует блок инициализации цикла.
  2. Блок инициализации открывается определением переменной, в которую будут записываться значения текущих элементов на каждом этапе выполнения.
  3. После определения переменной размещается ключевое слово in. Оно является своего рода разделителем переменной и списка элементов.
  4. За ключевым словом in происходит определение списка, предназначенного для перебора в цикле. Списком может быть: массив, простой ряд чисел или строк, механизмы подстановки, формирующие последовательности и т.д.
  5. Блок команд, который будет выполняться для каждого элемента, задается между ключевыми словами do и done. Где do — начало, а done — конец.
  6. Если ключевое слово do располагается на одной строке с определением списка, перед ним должна находиться точка с запятой.

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

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

3.jpeg