A little background:
So recently I was working a project where I had to implement some new features. The project was primarily written in BASH. While I love BASH it’s for simpler tasks, or at least this is what I thought.
What is an Associative array:
In computer science, an associative array, map, symbol table, or dictionary is an abstract data type composed of a collection of (key, value) pairs, such that each possible key appears at most once in the collection.
I’ve used associative arrays in different projects when I had to work with PHP, Python, and other languages but never with BASH, I didn’t even know it was possible.
In this mini-tutorial, I’ll go over exactly that, associative arrays in BASH, how to control, populate it, how to define and use them.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
Declaring associative arrays
An associative array in bash is declared by using the declare -A command (How surprising, I know :D).
For this example, we’ll use DOAssosArray
Initizialing/populating an associative array
Elements in the array can be initialized at the time of array declaration or after declaring the array variable
In the previous paragraph, we declared the array DOAssosArray. In order to populate it, we can execute the following commands:
The variable inside the brackets - [] will be the KEY and the value after the equal sign will be the VALUE.
Let’s make a more real-life example. We’ll use Countries as KEYS and Capitals as VALUES.
Let’s say we wanted to populate the associative array while we were creating it. This can be achieved by:
or following our example like this:
Accessing elements in the Associative array
Elements in the associative array can be accessed individually or by using for and while loops.
You can access values in an associative array by calling its KEY:
in our case
The output will be Berlin.
Since this mini-tutorial is becoming far too long, we’ll review only accessing associative array elements individually and in the next part work through the other possibilities and even try to explore more of how associative array in BASH work and how we can manage them.