Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Array Basics in Shell Scripting | Set 1

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Consider a Situation if we want to store 1000 numbers and perform operations on them. If we use simple variable concept then we have to create 1000 variables and the perform operations on them. But it is difficult to handle a large number of variables. So it is good to store the same type of values in the array and then access via index number. Array in Shell Scripting An array is a systematic arrangement of the same type of data. But in Shell script Array is a variable which contains multiple values may be of same type or different type since by default in shell script everything is treated as a string. An array is zero-based ie indexing start with 0. How to Declare Array in Shell Scripting? We can declare an array in a shell script in different ways. 1. Indirect Declaration In Indirect declaration, We assigned a value in a particular index of Array Variable. No need to first declare.

 

2. Explicit Declaration In Explicit Declaration, First We declare array then assigned the values.

 

3. Compound Assignment In Compound Assignment, We declare array with a bunch of values. We can add other values later too.

 

or [indexnumber=]string

 

To Print Array Value in Shell Script? To Print All elements [@] & [*] means All elements of Array.

 

bash




#! /bin/bash
 
# To declare static Array
arr=(prakhar ankit 1 rishabh manish abhinav)
 
# To print all elements of array
echo ${arr[@]}      
echo ${arr[*]}      
echo ${arr[@]:0}   
echo ${arr[*]:0}   

Output:

prakhar ankit 1 rishabh manish abhinav
prakhar ankit 1 rishabh manish abhinav
prakhar ankit 1 rishabh manish abhinav
prakhar ankit 1 rishabh manish abhinav

To Print first element 

bash




# To print first element
echo ${arr[0]}       
echo ${arr}       

Output:

prakhar
prakhar

Time Complexity: O(1)
Auxiliary Space: O(1)

To Print Selected index element

 

bash




# To print particular element
echo ${arr[3]}       
echo ${arr[1]}       

Output:

rishabh
ankit

Time Complexity: O(1)
Auxiliary Space: O(1)

To print elements from a particular index

 

bash




# To print elements from a particular index
echo ${arr[@]:0}    
echo ${arr[@]:1}
echo ${arr[@]:2}    
echo ${arr[0]:1}   

Output:

prakhar ankit 1 rishabh manish abhinav
ankit 1 rishabh manish abhinav
1 rishabh manish abhinav
prakhar

To print elements in range

Time Complexity: O(n)
Auxiliary Space: O(1)

 

bash




# To print elements in range
echo ${arr[@]:1:4}    
echo ${arr[@]:2:3}    
echo ${arr[0]:1:3}   

Output:

ankit 1 rishabh manish
1 rishabh manish
rak

Time Complexity: O(n)
Auxiliary Space: O(1)

To count Length of in Array To count the length of a particular element in Array. Use #(hash) to print length of particular element 

bash




# Length of Particular element
echo ${#arr[0]}       
echo ${#arr}       

Output:

7
7

Time Complexity: O(1)
Auxiliary Space: O(1)

To count length of Array. 

bash




# Size of an Array
echo ${#arr[@]}       
echo ${#arr[*]}       

Output:

6
6

Time Complexity: O(1)
Auxiliary Space: O(1)

To Search in Array arr[@] : All Array Elements. /Search_using_Regular_Expression/ : Search in Array Search Returns 1 if it found the pattern else it return zero. It does not alter the original array elements. 

bash




# Search in Array
echo ${arr[@]/*[aA]*/}   

Output:

1

Time Complexity: O(n)
Auxiliary Space: O(1)

To Search & Replace in Array //Search_using_Regular_Expression/Replace : Search & Replace Search & Replace does not change in Original Value of Array Element. It just returned the new value. So you can store this value in same or different variable. 

bash




# Replacing Substring Temporary
echo ${arr[@]//a/A}        
echo ${arr[@]}            
echo ${arr[0]//r/R}       

Output:

prAkhAr Ankit 1 rishAbh mAnish AbhinAv
prakhar ankit 1 rishabh manish abhinav
RakhaR

Time Complexity: O(n)
Auxiliary Space: O(1)

To delete Array Variable in Shell Script? To delete index-1 element

 

To delete the whole Array

 

bash




#! /bin/bash
# To declare static Array
arr=(prakhar ankit 1 rishabh manish abhinav)
 
# To print all elements of array
echo ${arr[@]}        # prakhar ankit 1 rishabh manish abhinav
echo ${arr[*]}        # prakhar ankit 1 rishabh manish abhinav
echo ${arr[@]:0}    # prakhar ankit 1 rishabh manish abhinav
echo ${arr[*]:0}    # prakhar ankit 1 rishabh manish abhinav
 
# To print first element
echo ${arr[0]}        # prakhar
echo ${arr}            # prakhar
 
# To print particular element
echo ${arr[3]}        # rishabh
echo ${arr[1]}        # ankit
 
# To print elements from a particular index
echo ${arr[@]:0}    # prakhar ankit 1 rishabh manish abhinav
echo ${arr[@]:1}    # ankit 1 rishabh manish abhinav
echo ${arr[@]:2}    # 1 rishabh manish abhinav
echo ${arr[0]:1}    # rakhar
 
# To print elements in range
echo ${arr[@]:1:4}    # ankit 1 rishabh manish
echo ${arr[@]:2:3}    # 1 rishabh manish
echo ${arr[0]:1:3}    # rak
 
# Length of Particular element
echo ${#arr[0]}        # 7
echo ${#arr}        # 7
 
# Size of an Array
echo ${#arr[@]}        # 6
echo ${#arr[*]}        # 6
 
# Search in Array
echo ${arr[@]/*[aA]*/}    # 1
 
# Replacing Substring Temporary
echo ${arr[@]//a/A}        # prAkhAr Ankit 1 rishAbh mAnish AbhinAv
echo ${arr[@]}            # prakhar ankit 1 rishabh manish abhinav
echo ${arr[0]//r/R}        # pRakhaR

Output:

prakhar ankit 1 rishabh manish abhinav
prakhar ankit 1 rishabh manish abhinav
prakhar ankit 1 rishabh manish abhinav
prakhar ankit 1 rishabh manish abhinav
prakhar
prakhar
rishabh
ankit
prakhar ankit 1 rishabh manish abhinav
ankit 1 rishabh manish abhinav
1 rishabh manish abhinav
rakhar
ankit 1 rishabh manish
1 rishabh manish
rak
7
7
6
6
1
prAkhAr Ankit 1 rishAbh mAnish AbhinAv
prakhar ankit 1 rishabh manish abhinav
pRakhaR

Time Complexity: O(n)
Auxiliary Space: O(1)

Reference: https://www.tecmint.com/working-with-arrays-in-linux-shell-scripting/


My Personal Notes arrow_drop_up
Last Updated : 18 Apr, 2023
Like Article
Save Article
Similar Reads