Friday, September 7, 2018

Array

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

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.

No comments:

Post a Comment