Array Basics Shell Scripting | Set 2 (Using Loops)

It is recommended to go through Array Basics Shell Scripting | Set-1
Introduction
Suppose you want to repeat a particular task so many times then it is a better to use loops. Mostly all languages provides the concept of loops. In Bourne Shell there are two types of loops i.e for loop and
while loop.

To Print the Static Array in Bash

1. By Using while-loop

${#arr[@]} is used to find the size of Array.

filter_none

edit
close

play_arrow

link
brightness_4
code

# !/bin/bash
# To declare static Array 
arr=(1 12 31 4 5)
i=0
  
# Loop upto size of array
# starting from index, i=0
while [ $i -lt ${#arr[@]} ]
do
    # To print index, ith
    # element
    echo ${arr[$i]}
      
    # Increment the i = i + 1
    i=`expr $i + 1`
done

chevron_right


Output:

1
2
3
4
5

2. By Using for-loop

filter_none

edit
close

play_arrow

link
brightness_4
code

# !/bin/bash
# To declare static Array 
arr=(1 2 3 4 5)
  
# loops iterate through a 
# set of values until the
# list (arr) is exhausted
for i in "${arr[@]}"
do
    # access each element 
    # as $i
    echo $i
done

chevron_right


Output:

1
2
3
4
5

To Read the array elements at run time and then Print the Array.

1. Using While-loop

filter_none

edit
close

play_arrow

link
brightness_4
code

# !/bin/bash
# To input array at run
# time by using while-loop
  
# echo -n is used to print
# message without new line
echo -n "Enter the Total numbers :"
read n
echo "Enter numbers :"
i=0
  
# Read upto the size of 
# given array starting from
# index, i=0
while [ $i -lt $n ]
do
    # To input from user
    read a[$i]
  
    # Increment the i = i + 1
    i=`expr $i + 1`
done
  
# To print array values 
# starting from index, i=0
echo "Output :"
i=0
  
while [ $i -lt $n ]
do
    echo ${a[$i]}
  
    # To increment index
    # by 1, i=i+1 
    i=`expr $i + 1`
done

chevron_right


Output:

Enter the Total numbers :3
Enter numbers :
1
3
5
Output :
1
3
5

2. Using for-loop

filter_none

edit
close

play_arrow

link
brightness_4
code

# !/bin/bash
# To input array at run 
# time by using for-loop
  
echo -n "Enter the Total numbers :"
read n
echo "Enter numbers:"
i=0
  
# Read upto the size of 
# given array starting 
# from index, i=0
while [ $i -lt $n ]
do
    # To input from user
    read a[$i]
  
    # To increment index 
    # by 1, i=i+1
    i=`expr $i + 1`
done
  
# Print the array starting
# from index, i=0
echo "Output :"
  
for i in "${a[@]}"
do
    # access each element as $i
    echo $i 
done

chevron_right


Output:

Enter the Total numbers :3
Enter numbers :
1
3
5
Output :
1
3
5


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.