Использование массивов в Bash

Массив - это структура данных, которая представляет собой набор объектов с одним и тем же типом данных. Bash это не полноценный язык программирования, но он также поддерживает переменные типа массива.
Объявленная как массив переменная может хранить несколько значений. В зависимости от того, как осуществляется доступ к значениям из массива, bash поддерживает два типа массивов: ассоциативные массивы или одномерные индексированные массивы. В ассоциативных массивах доступ к значениям осуществляется с помощью соответствующих ключей. Индексированные массивы - это упорядоченные списки, в которых вы можете получить доступ к значениям по их индексу (позиции в списке).

Создание индексированного массива в Bash

Переменные в bash не строго типизированы. Например, переменную bash можно рассматривать как строки или целые числа, можно обеспечить типичное поведение в bash, объявив "атрибут" переменной. Bash позволяет явно объявить переменную как индексированный массив, используя встроенную команду объявления с параметром -a

Инициализация индексированных массивов в Bash

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

В качестве разделителя в массиве используется пробел, это необходимо учитывать при создании массива строк.

Явное объявление массива

Неявное объявление массива

массив содержащий цифры и строки

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

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

Определение длины массива

Для определения длины массива, используется выражение с символами # и @.

Добавление значений в массив

Для массивов bash нет ограничений на максимальный размер.

Bash позволяет динамически увеличивать длину массива, динамически добавлять одно или несколько значений в конец. Для этого используется оператор +=.

Возможно добавление значений в массив следующим способом

Так же возможен вариант, с использованием длины массива

Использование массивов в цикле

Для перебора значений можно использовать цикл for

Так возможно перебирать массив, используя индексы массива

Вывод массива

Возможно вывести значение массива в цикле, это позволить обеспечить доступ к элементам массива и их обработку, но если просто необходимо вывести все значения массива, то можно использовать конструкцию <имя массива>[@]

Получение части массивов в Bash

Bash позволяет получать часть значений из массива в виде последовательных подмножество значений (например, значения от индекса 3 до 6)

Получить значения всего массива

Получить количество элементы (len), начиная с индекса (index)

Получить количество элементы (len), начиная с 0 индекса

Получить все элементы массива начиная с индекса

Примеры:

 

Понравилась статья? Поделиться с друзьями:
Добавить комментарий