BASH/C2/More-on-Arrays/English
Title of script: More on Arrays in BASH Shell Scripting
Author: Lavitha Pereira
Keywords: video tutorial, Bash shell, Array
|
|
Display Slide 1 | Welcome to the spoken tutorial on
More on Arrays in BASH |
Display Slide 2
Learning Objectives |
In this tutorial, we will learn to
|
Display Slide 4
Prerequisite
|
To follow this tutorial,
You should be familiar with the Linux Operating System.
|
Display Slide 5
System Requirements |
For this tutorial I am using
GNU Bash version 4 or above is recommended to practice this tutorial. |
Display Slide 6
“Extract of element from an Array”
|
* The elements in an Array can be extracted from any position
|
Display Slide 6
Syntax:
|
The syntax is as follows:
ArrayName opening square bracket At sign closing square bracket colon position colon Number of elements to be extracted from the position mentioned. |
Let us understand with the help of an example. | |
Press Ctrl+Alt+T | Open the terminal by pressingCtrl+Alt+T keys simultaneously |
On Terminal >>Type gedit array2.sh | Type:
gedit space array2.sh on the terminal. |
Now type the code as shown here in your array2.sh file. | |
[Highlight]
#!/bin/bash |
This is the Shenbang line |
[Highlight]
declare -a Linux=('Debian' 'Redhat' 'Ubuntu' 'Fedora') |
This declare command declares an array named Linux with elements
|
echo -e "Original elements in an array Linux: ${Linux[@]} \n" | This echo command will print the list of all the elements in the array. |
echo -e "The two elements starting from index one(Redhat): ${Linux[@]:1:2}\n"
|
The next echo command will print the extracted elements.
${Linux[@]:1:2} will print two elements starting from index one which is Redhat. |
Switch to Terminal>>Type chmod +x array2.sh>> Press Enter | Switch to Terminal.
First let's make the file executable by typingchmod space plus x space array2.sh .Press Enter. |
Type ./array2.sh>> Press Enter | Now let's execute it by typing
dot slash array2.sh Press Enter. |
OUTPUT
Original elements in an array Linux: Debian Redhat Ubuntu Fedora
|
We get the output as shown -
|
OUTPUT
The two elements starting from index one(Redhat): Redhat Ubuntu
|
The two elements starting from index one(Redhat): Redhat Ubuntu |
Let us switch back to the slides | |
===== Display Slide 7 =====
“Replace an element in an Array”ArrayName[n]='NewWord'
|
An existing element in an Array can be replaced using the following syntax.
ArrayName opening square bracket n closing square bracket equal to within single quote, NewWord.
|
Come back to the text editor. | |
[Highlight]
Linux[2]='Mandriva' |
Linux[2]='Mandriva'
This command will replace the third element Ubuntu with Mandriva. |
echo -e "All elements after replacement: ${Linux[@]} \n" | This echo command will display all elements of array Linux after replacement.Till here will execute and show. |
It says, as the script was already executed, we will not execute again, instead we will browse through its output as array2.sh is already executed. We will switch to terminal and see the output. | |
[Highlight]
All elements after replacement: Debian Redhat Mandriva Fedora |
This displays all elements after Ubuntu was replaced with Mandriva |
Switch to slides | |
===== Display Slide 8 =====
“Add an element to an Array”
ArrayName=("${ArrayName[@]}" "New_word_1" "New_word_2")
|
We can append an element using the following syntax -
space within double quote New_Word_1 space within double quote New_Word_2 closing round bracket. |
Let us understand this with the help of our example.
Switch to the code file. | |
Highlight
Linux=("${Linux[@]}" "Suse") |
The highlighted command will append a new element Suse to the array Linux |
echo -e "All elements After appending Suse: ${Linux[@]} \n" | Then we will echo all the elements after appending Suse.Again till here we can execute and show. |
So this will be executed and shown, right?
Previously we had 4 elements, then we added 'Suse' and the end of the list making it total of 5 elements. The output is the list of all five elements |
Switch to terminal and see the output |
[Highlight]
All elements After appending Suse: Debian Redhat Mandriva Fedora Suse |
Here we can see all the elements after appending Suse to the array |
Now, come back to the slides | |
Display Slide 9
Remove an element from an Array
|
An element can be removed from an array by using the following syntax -
|
Let us switch to the code file. | |
Highlight
unset Linux[2] |
Here we are using the unset command.
|
echo -e "All elements after removal of third element: ${Linux[@]} \n" | Then we will echo all the elements again after the removal of Mandriva. |
Same question as before.Reply to Nancy Varkey (08/08/2013, 11:20): "..."
Here we have removed one element i.e. Mandriva making to count back to 4. The output will show the remaining list of elementsSwitch to terminal and observe the output | |
All elements after removal of third element: Debian Redhat Fedora Suse | Here is the list of elements after removing Mandriva
|
Let us summarize. | |
Display slide 10
Summary |
In this tutorial, we learned to
|
Display Slide 11
Assignment |
As an assignment.
|
Display Slide 12 | Watch the video available at the link shown below
It summarizes the Spoken Tutorial project If you do not have good bandwidth, you can download and watch it |
Display Slide 13
|
The Spoken Tutorial Project Team
Conducts workshops using spoken tutorials Gives certificates to those who pass an online test For more details, please write to contact@spoken-tutorial.org
|
Display Slide 16
Acknowledgement |
Spoken Tutorial Project is a part of the Talk to a Teacher project
It is supported by the National Mission on Education through ICT, MHRD, Government of India More information on this Mission is available at: http://spoken-tutorial.org/NMEICT-Intro |
The script has been contributed by FOSSEE and spoken-tutorial team.
Thank you for joining. |