Bash Arrays With Examples

An array is a collection of elements. In Bash, an array can contain a mix of elements of different types, e.g. Strings and Numbers.

In this tutorial, we discuss how to create and use arrays in Bash. We will also cover array operations such as looping, printing, getting the size and modifying the contents.

How to Create Arrays in Bash

There are two ways we can create Bash arrays:

Using the declare keyword

declare -a my_bash_array

this will create an indexed array with the name “my_bash_array”.

Initializing an Array

We can also create and initialize arrays on the fly using the assignment operator = and the elements inside curly braces ():

my_bash_array=("apple" "orange" "banana")

Or, we could also specify the index explicitly


Bash Array Length

To get the length or size of an array, we use ${#array_name[@]}.

For example:

my_bash_array=(foo bar baz)
echo "the array contains ${#my_bash_array[@]} elements"

the array contains 3 elements

Bash Array Loop

To iterate through all elements in a Bash array, we can use the for loop:


my_array=(foo bar baz)

# for loop that iterates over each element
for i in "${my_array[@]}"
    echo $i



Printing all elements

To print all elements of an array without a loop, we can use the following syntax:

echo ${my_array[@]}

Adding Elements to Array

To add elements to an array we use the += operator. This will append an element to the end of the array.

For example:

my_array=(foo bar)

echo "${my_array[@]}"
foo bar baz

Or we can use the index to add an element:

my_array=(foo bar)

echo "${my_array[@]}"
foo bar baz

Delete Elements from Array

To delete an element from a Bash array, we use the unset command.

For example:

my_array=(foo bar baz)
unset my_array[1]
echo ${my_array[@]}
foo baz


In this tutorial we covered Bash arrays; how to create and initialize arrays in Bash and how to get the length, loop over elements, print elements and modify the contents of an array.