Використання асоціативних масивів

Bash:
Використання асоціативних масивів

Як це зробити:

Перш за все, оголосіть асоціативний масив у Bash:

declare -A my_array

Потім можете почати заповнювати його значеннями, використовуючи рядки як ключі:

my_array["name"]="Linux Journal"
my_array["topic"]="Програмування"

Щоб отримати доступ до елемента, використовуйте його ключ:

echo ${my_array["name"]}  # Виведе: Linux Journal

Ітерація по ключах та значеннях також проста:

for key in "${!my_array[@]}"; do
    echo "$key: ${my_array[$key]}"
done

Приклад виводу може виглядати так:

name: Linux Journal
topic: Програмування

Щоб додати або змінити елементи, просто призначте значення ключу, подібно до початкового заповнення:

my_array["readers"]="Ви"

А щоб видалити елемент, використовуйте unset:

unset my_array["topic"]

Глибше занурення

Асоціативні масиви були введені у версії Bash 4.0, що робить їх відносно новим доповненням до мови. До їх введення обробка масивів з нецілочисельними індексами була складною, часто вимагаючи обхідних шляхів або зовнішніх інструментів, таких як awk або sed.

Під капотом, Bash реалізує асоціативні масиви, використовуючи хеш-таблиці. Ця реалізація дозволяє ефективний пошук за ключем, який залишається досить стабільним незалежно від розміру масиву, критичною особливістю для продуктивності виконання скриптів.

Хоча асоціативні масиви в Bash надають багато потужності та гнучкості для скриптів командної оболонки, вони мають свій набір обмежень, таких як деяка незручність у роботі порівняно з масивами у вищих мовах програмування, таких як Python або JavaScript. Для складних завдань маніпуляції даними все ж може бути варто розглянути зовнішні інструменти або мови, які краще підходять для задачі.

Однак, для багатьох типових завдань скриптів, асоціативні масиви надають цінний інструмент у наборі інструментів програміста Bash, дозволяючи створювати більш читабельні та легкі для підтримки скрипти, завдяки використанню значущих рядкових ключів замість числових індексів.