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, дозволяючи створювати більш читабельні та легкі для підтримки скрипти, завдяки використанню значущих рядкових ключів замість числових індексів.