BASH/C2/More-on-Loops/English
Title of script: Nested loop in Bash
Author: Ashwini Patil
Keywords: video tutorial, for loop
|
|
---|---|
Display Slide 1 | Dear friends, Welcome to the spoken tutorial on
Nested for loop in BASH |
Display Slide 2 | In this tutorial, we will learn
|
Display Slide 3 | For this tutorial I am using
Please note, GNU Bash version 4 or above is recommended to practise this tutorial. |
Display slide 4
|
To learn this tutorial,
you should be familiar with arrays and loops in Bash.
|
Display Slide 5
|
Let us start with an introduction.
A loop within a loop is known as nested loop. |
Display Slide 6 | Let us start with for loop first.
Syntax: for ((exp1; exp2; exp3)) do for ((exp1; exp2; exp3)) do statement1 statement1 done done |
Open the file for-new.sh | Let us see an example on for loop |
Show the folder structure
|
First let us go through the directory structure.
Here is a directory on the Desktop named simple-nested-for. Let's open it. |
Open test directory to show the text files. | We have subdirectories test, test2 and test3 and a bash script.
In each sub-directory there are multiple text files. |
Now we will move on to our code.
This program displays all the files within each subdirectory.
ls -1 -R test* But we will do it using a for-loop.
| |
Point to the filename. | Note that the name of our bash script is nested-for.sh |
Highlight
|
This is our shebang line. |
Highlight
for dir in test*; do echo "Files in $dir directory:" echo " "
|
This is the outer for loop.
This for loop will check for directories starting with the name test . First 'echo' line will display the sub-directories name. The second 'echo' line will create a blank line. |
for file in $(ls -1 $dir); do
|
This is the inner for loop.
It will check for files present within the directories. ls displays the directory content. -1 is used to list one file per line. |
echo $file
done echo "------------------------" done |
Here we list the files.
'done' ends the inner for loop. This command prints a vertical line after completion of every cycle of outer for-loop. 'done' ends the outer for loop. |
Open terminal
Ctrl+alt+t |
Let us execute the program.
Open the terminal by pressing ctrl+alt+t keys simultaneously on your keyboard. |
Type:
chmod +x nested-for.sh ./nested-forsh |
Type:
chmod +x nested-for.sh Type: ./nested-for.sh |
Highlight
Output |
The output is displayed.
It shows
|
This brings us to the end of this tutorial.
Let us summarize. | |
Display Slide 7
Summary |
Summary
In this tutorial we learnt, Nested for loop
|
Display Slide 8
Assignment |
As an assignment
Retype the above program using nested while loop. Save your program with the name 'nested-while.sh' |
Display Slide 9
http://spoken-tutorial.org /What\_is\_a\_Spoken\_Tutorial About the Spoken Tutorial Project |
Watch the video available at the link shown below
It summarises the Spoken Tutorial project If you do not have good bandwidth, you can download and watch it |
Display Slide 10
Spoken Tutorial Workshops |
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 11
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.
This is Ashwini Patil from IIT Bombay Thank You for joining. |