An array is a list of variables. For example, we can create an array FRUIT
, which will contain many fruit names. The array does not have a limit on how many variables it may contain. It can contain any type of data. The first element in an array will have the index value as 0:
student@ubuntu:~$ FRUITS=(Mango Banana Apple) student@ubuntu:~$ echo ${FRUITS[*]} Mango Banana Apple student@ubuntu:~$ echo $FRUITS[*] Mango[*] student@ubuntu:~$ echo ${FRUITS[2]} Apple student@ubuntu:~$ FRUITS[3]=Orange student@ubuntu:~$ echo ${FRUITS[*]} Mango Banana Apple Orange
You will learn about creating an array in the Bash
shell.
If the array name is FRUIT
, then we can create an array as follows:
FRUIT[index]=value
Index
is the integer value. It should be 0 or any positive integer value.
We can also create an array as follows:
$ declare -a array_name $ declare -a arrayname=(value1 value2 value3)
Example:
$ declare -a fruit=('Mango' 'Banana' 'Apple' 'Orange' 'Papaya') $ declare -a array_name=(word1 word2 word3 ...) $ declare -a fruit=( Pears Apple Mango Banana Papaya ) $ echo ${fruit[0]} Pears $ echo ${fruit[1]} Apple $ echo "All the fruits are ${fruit[*]}" All the fruits are Pears Apple Mango Banana Papaya $ echo "The number of elements in the array are ${#fruit[*]}" The number of elements in the array are 3 $ unset fruit or unset ${fruit[*]}
Once we have initialized an array, we can access it as follows:
${array_name[index]}
We will create the script array_01.sh
as follows:
#!/bin/bash FRUIT[0]="Pears" FRUIT[1]="Apple" FRUIT[2]="Mango" FRUIT[3]="Banana" FRUIT[4]="Papaya" echo "First Index: ${FRUIT[0]}" echo "Second Index: ${FRUIT[1]}"
output:
$ chmod +x array_01.sh $./array_01.sh First Index: Pears Second Index: Apple
To display all the items from the array, use the following commands:
${FRUIT[*]} ${FRUIT[@]}
Create an array_02.sh
script as follows:
#!/bin/bash FRUIT[0]="Pears" FRUIT[1]="Apple" FRUIT[2]="Mango" FRUIT[3]="Banana" FRUIT[4]="Papaya" echo "Method One : ${FRUIT[*]}" echo "Method Two : ${FRUIT[@]}"
Output:
$ chmod +x array_02.sh $./ array_02.sh Method One : Pears Apple Mango Banana Papaya Method Two : Pears Apple Mango Banana Papaya
Let's see few more examples:
$ city[4]=Tokyo
The fourth member of the array, city, is being assigned Tokyo
. Since it is the only element in the array, array the size will be 1.
$ echo ${city[*]} Tokyo
The size of the array city is 1, since any other member of the array is not yet initialized.
${city[*]}
will display the only element of the array city.
$ echo ${city[0]}
city[0]
has no value, and neither does city[1]
and city[2]
.
$ echo ${city[4]} Tokyo
city[4]
has the name of city as Tokyo
.
$ countries=(USA [3]=UK [2]=Spain)
The array countries are being assigned USA
at index 0
, UK
at index 3
, and Spain
at index 2
. We can observe here that it does not matter in which sequence we are initializing the members of the array. They need not be in same sequence.
$ echo ${countries[*]} USA Spain UK $ echo ${countries[0]} USA
The first element of the countries
array is printed.
$ echo ${countries[1]}
There is nothing stored in countries [1]
.
$ echo ${countries[2]} Spain
The third element of the countries
array, countries [2]
, was assigned Spain
.
$ echo ${countries[3]} UK
The fourth element of the countries
array, countries [3]
, was assigned UK
.