Как использовать ассоциативные массивы в Bash

Как использовать ассоциативные массивы в Bash

Рубрики:

Bash, Linux

Метки:

Bash, linux

Ассоциативный массив — структура данных, в которой элементы хранятся в виде пары «ключ-значение». В отличие от обычного массива, где доступ к элементам осуществляется по индексу, ассоциативные массивы позволяют обращаться к данным по связанным с ними ключам.

В этой статье мы покажем Вам базовые примеры использования ассоциативных массивов в Bash Linux.

Содержание:

  1. Требования
  2. Объявление ассоциативного массива и добавление элементов в него
  3. Отображение ключей и значений в терминале
  4. Определение длины ассоциативного массива
  5. Получение доступа к значениям и их добавление в массив
  6. Перебор элементов ассоциативного массива с помощью цикла for
  7. Проверка наличия ключа в массиве
  8. Удаление элементов ассоциативного массива
  9. Выводы

Требования

Функционал ассоциативных массивов появился в Bash версии 4 в Вашей ОС. Чтобы узнать версию Bash, выполните в терминале команду:

 

bash version

Чтобы обновить Bash в Вашем дистрибутиве Linux, используйте одну из следующих команд.

Для Debian / Ubuntu:

 

Для CentOS / Redhat / Fedora Linux:

Объявление ассоциативного массива и добавление элементов в него

Чтобы создать / объявить ассоциативный массив в Bash, используется команда declare с опцией -A и названием массива. Например:

 

declare array

Для заполнения массива данными в виде «ключ-значение» применяется команда:

 

К примеру, заполним наш массив тремя парами «ключ-значение»:

 

add key value

Читайте также: 10 полезных советов для написания эффективных bash скриптов в Linux.

Вы также можете заполнить ассоциативный массив во время его объявления. Для этого используется такая конструкция:

 

Также, как и в различных языках программирования, Вы можете создать ассоциативный массив в режиме «только для чтения». Чтобы это сделать, добавьте в команду объявления массива опцию -r:

 

declare readonly array

На скриншоте выше видно, что при попытке записи новых данных в массив появляется сообщение readonly variable.

Отображение ключей и значений в терминале

Для вывода значений ассоциативного массива можно использовать команду echo. В качестве ее аргумента следует передать такую конструкцию — ${<array-name>[@]}. Например:

 

echo array values

Символ @ обращается ко всем элементам массива и выводит только значения.

Чтобы просмотреть список ключей ассоциативного массива, к аргументу предыдущей команды добавьте восклицательный знак (!) перед названием массива:

 

echo array keys

Важно: ключи и значения выводятся в произвольном порядке, а не в том, в котором они были объявлены.

Определение длины ассоциативного массива

Чтобы вывести на экран длину массива, выполните в терминале следующую команду:

 

array length

Читайте также: Изучение базового написания скриптов оболочки (Shell Scripting) и файловой системы Linux, устранение неполадок — LFCS часть 10.

Получение доступа к значениям и их добавление в массив

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

 

Где <key> — ключ нужного значения. Например:

 

echo certain value by key

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

 

append new value

Вы также можете применить следующую команду для добавления новой пары «ключ-значение» в массив:

 

alternative method append new value

Перебор элементов ассоциативного массива с помощью цикла for

Ассоциативные массивы очень часто используются в скриптах. Вы можете обрабатывать элементы этих массивов с помощью цикла for. Для примера напишем код, который выведет на экран все ключи и их значения:

 

array loop for

Читайте также: Как использовать цикл for в Linux.

Проверка наличия ключа в массиве

Одной из самых популярных задач в программировании является проверка элемента на наличие в массиве. Для ее решения можно использовать оператор if. Например:

 

if key exists

Читайте также: Использование операторов if, elif, else в скриптах Bash.

Удаление элементов ассоциативного массива

Вы можете удалить пару «ключ-значение» из массива с помощью команды unset. Для этого в качестве ее аргумента следует указать ключ из нужной пары:

 

unset key-value pair

Чтобы удалить ассоциативный массив, передайте его название в качестве аргумента к команде unset:

 

delete array

Выводы

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

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Bash, Linux

Метки:

Bash, linux

Больше похожих постов

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики