- Массивы в Bash
- Bash массивы
- Создание массивов в Bash
- Создание массивов с числовой индексацией
- Создание ассоциативных массивов
- Операции с массивами
- Справочные элементы
- Длина массива
- Прокрутите массив
- Добавить новый элемент
- Удалить элемент
- Выводы
- Глава 25. Массивы
- Массивы Bash
- Массивы Bash
- Примеры использования массивов Bash
- Выводы
Массивы в Bash
Массивы — одна из наиболее часто используемых и фундаментальных структур данных. Вы можете думать о массиве как о переменной, которая может хранить в себе несколько переменных.
В этой статье мы рассмотрим массивы Bash и объясним, как их использовать в сценариях Bash.
Bash массивы
Bash поддерживает одномерные типы массивов с числовым индексом и ассоциативные массивы. Для ссылок на числовые массивы используются целые числа, а для ассоциативных ссылок — с помощью строк.
Доступ к массивам с числовым индексом можно получить с конца, используя отрицательные индексы, индекс -1 ссылается на последний элемент. Индексы не обязательно должны быть смежными.
В отличие от большинства языков программирования, элементы массива Bash не обязательно должны иметь один и тот же тип данных. Вы можете создать массив, содержащий как строки, так и числа.
Bash не поддерживает многомерные массивы, и у вас не может быть элементов массива, которые также являются массивами.
Нет ограничений на максимальное количество элементов, которые могут храниться в массиве.
Создание массивов в Bash
Массивы в Bash можно инициализировать по-разному.
Создание массивов с числовой индексацией
Переменные Bash не типизированы, любая переменная может использоваться как индексированный массив без ее объявления.
Чтобы явно объявить массив, используйте встроенную команду declare:
Один из способов создать индексированный массив — использовать следующую форму:
Где index_* — положительное целое число.
Другой способ создать числовой массив — указать список элементов в круглых скобках, разделенных пустым пространством:
Когда массив создается с использованием формы выше, индексация начинается с нуля, то есть первый элемент имеет индекс 0 .
Создание ассоциативных массивов
В отличие от числовых индексов, ассоциативные массивы должны быть объявлены до того, как их можно будет использовать.
Чтобы объявить ассоциативный массив, используйте встроенную команду declare с параметром -A (верхний регистр):
Ассоциативные массивы можно создавать, используя следующую форму:
Где index_* может быть любой строкой.
Вы также можете создать ассоциативный массив, используя форму ниже:
Операции с массивами
Синтаксис массивов Bash сначала может показаться немного странным, но, когда вы прочтете эту статью, он станет более понятным.
Справочные элементы
Чтобы ссылаться на один элемент, вам необходимо знать индекс элемента.
На любой элемент можно ссылаться, используя следующий синтаксис:
Распечатаем элемент с индексом 1 :
Если вы используете @ или * в качестве индекса, слово расширяется до всех членов массива. Чтобы распечатать все элементы, вы должны использовать:
Единственная разница между @ и * состоит в том, что форма $
Чтобы распечатать ключи массива, добавьте ! оператор перед именем массива:
Длина массива
Чтобы получить длину массива, используйте следующую форму:
Прокрутите массив
Наиболее распространенный способ перебора каждого элемента в массиве — использование цикла for :
Приведенный выше код будет перебирать массив и печатать каждый элемент в новой строке:
Вот пример того, как распечатать все ключи и значения:
Другой способ перебрать массив — получить длину массива и использовать цикл в C style
Добавить новый элемент
Чтобы добавить новый элемент в массив bash и указать его индекс, используйте следующую форму:
Другой способ добавления нового элемента в массив без указания индекса — использование оператора += . Вы можете добавить один или несколько элементов:
Удалить элемент
Чтобы удалить один элемент, вам нужно знать индекс элемента. Элемент можно удалить с помощью команды unset :
Посмотрим на пример:
Выводы
Мы объяснили, как создавать числовые индексированные и ассоциативные массивы. Мы также показали, как перебирать массивы, вычислять длину массива, а также добавлять и удалять элементы.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник
Глава 25. Массивы
Новейшие версии Bash поддерживают одномерные массивы. Инициализация элементов массива может быть произведена в виде: variable[xx]. Можно явно объявить массив в сценарии, с помощью директивы declare: declare -a variable. Обращаться к отдельным элементам массива можно с помощью фигурных скобок, т.е.: $ .
Пример 25-1. Простой массив