Работа с массивами в bash

Скопировал статью себе, что бы было под рукой, отсюда

И вот настал черёд третьего поста из цикла «Язык командного интерпретатора bash». В первых двух топиках мы в общих чертах рассмотрели понятие параметров оболочки и механизмы подстановок. В текущем топике речь пойдёт о массивах интерпретатора bash. Топик будет совсем небольшим, так как объём охватываемой им информации также невелик и легко усваивается.
Командный интерпретатор bash поддерживает одномерные массивы с неограниченным числом элементов. Да, лимит на количество элементов отсутствует, в то время, как в других оболочках существуют эти ограничения. Например, в оболочке ksh максимальным числом элементов является 1024 элемента.
Как я говорил в своём первом посте, в bash есть только один тип – строковый, а значит, все элементы массива также являются строковыми. Определяющим фактором здесь служит содержимое параметров. Нумерация элементов начинается с нуля.
Приведу пример присвоения значений элементам массива:

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

Чтобы обратиться ко всем элементам массива сразу, нужно в качестве порядкового номера элемента массива указать символ * или символ @. Например:

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

Данный пример будет эквивалентен списку:

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

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

Вывести содержимое всего массива:

RelatedPost

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

Ваш e-mail не будет опубликован.