BASH/C2/Conditional-Loops/English
Title of script: Basic If loop in BASH
Author: Ashwini Patil
Keywords: video tutorial, for loop, while loop
|
|
---|---|
Display Slide 1 | Dear friends, welcome to the spoken tutorial on
loops 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 practice this tutorial. |
Display Slide 4
|
Let us start with an introduction to loops
|
Display Slide 5 | Let us start with for loop.
Let us see the syntax. for expression 1, 2, 3 statement 1, 2, 3 And this is the end of for loop. |
Display Slide | An alternate syntax of for loop is:
for variable in sequence/range statement 1, 2, 3 And end of for loop. |
Switch to the program in gedit. | Let us see an example of for loop using the first syntax.
|
Point cursor to the filename for.sh | Note that our filename is for.sh |
Highlight #!/bin/bash | This is our shebang line. |
Highlight
read -p “Enter number: ” y sum=0 |
The variable number will store the value given by user. The value is an integer here.
|
Highlight
for ((i=1;i<=y; Do not highlight i++)) |
This is where we begin the for loop.
First, we initialize i to the value 1. Then we check whether i is less than or equal to number. |
Highlight
do echo $((sum=sum+i)) done |
Now here, we calculate the sum as sum plus i
and then we print it. |
Highlight i++)) | After this, we increment the value of i by 1.
|
Highlight i<=y; | And then we check the same condition till this condition is false. |
Highlight
echo "Sum of first n numbers is $sum" |
On exiting the for loop, this message is printed. |
Let us execute the program and observe what happens. | |
Switch to the terminal and type:
chmod +x for.sh Type: ./for.sh |
On the terminal type -
chmod +x for.sh Then type: ./for.sh |
Type: 5
Highlight the output |
I will enter 5 as the input number.
The sum that is calculated for each value of i is displayed. After that, the last line of the output is displayed: Sum of first n numbers is 15 |
Resize the terminal window and the editor. | Now let us see the flow of the program.
Let me resize the windows. |
Highlight
for ((i=1; |
First we have value of i as 1. |
Highlight i<=y; | Then we check whether 1 is less than or equal to 5. |
Highlight
do echo $((sum=sum+i)) done |
Since the condition is true, we calculate sum as 0 + 1.
Then we print sum i.e 1. |
Highlight i++)) | Next, i is incremented by 1 and the new value of i is 2. |
Highlight 3 in the output | Then we check whether 2 is less than or equal to 5.
The condition is true and now sum will be 1 + 2 ie 3. |
Highlight i++)) | i is then incremented by 1 and the new value of i is 3.
And we get sum as 6. |
The script will continue to add the next value of i to the previous value in sum.
This will continue till i<=5 is false. | |
Highlight
echo "Sum of first n numbers is $sum" |
On exiting the for loop, the final message is printed.
|
Open file for-loop.sh >> Point cursor to the filename. | Let us see another example of for loop using the second syntax.
I have written the code in this file and named it as for-loop.sh
|
Highlight #!/bin/bash | This is the shebang line. |
Highlight
for file in $(ls -1);
|
Then we have for loop.
ls command lists the directory content. -1 (hyphen one) lists one file per line. |
Highlight
do echo $file; done |
This will list all the files present in your home directory.
|
On the terminal, type
chmod +x for-loop.sh ./for-loop.sh |
Let us execute the script on the terminal by typing -
chmod +x for-loop.sh
|
Show the output | This will display all the files present in the Home directory. |
Switch to the slides | Now, we will learn about the while loop.
Let us understand the syntax first. |
Display Slide 6 |
while condition statement 1, 2, 3 End of while loop.
|
Point cursor to the filename
while.sh |
Let us see an example of while loop.
Here I have named it as while.sh
|
Highlight
read -p “Enter number:” num |
Let us go through the code.
Here, we accept a number from the user and store it in variable number. |
Highlight
i=0 sum=0 |
Next, we declare variables i and sum and initialize them to 0 (zero). |
Highlightwhile [ $i -le $num ]
do |
Now this is the while condition.
Here we check whether i is less than or equal to value of number given by the user. |
Highlight
echo $((sum=sum+i)) |
Then we calculate the sum by adding value of i to value of sum. |
Highlight
i=$[$i+2] done |
Next, we increment the value of i with 2.
This will ensure that we only add the even numbers.
|
echo "Sum of even numbers within the given range is $sum" | When we exit the while loop, we print the sum of all the even numbers within the given range. |
On the terminal | Let us execute the program. |
Type:
chmod +x while.sh Type: ./while.sh |
Type on the terminal:
chmod +x while.sh
|
Type: 15 | I will give 15 as my input. |
Highlight the output | The last line of the output is:
Sum of even numbers within the given range is 56. |
Resize the editor window and the terminal | Let me resize the window and explain the output. |
Highlightwhile [ $i -le $num ] | First we check whether i which is 0, is less than or equal to number, which is 15. |
Highlight
$((sum=sum+i)) |
The condition is true, hence sum will be 0+0 ie 0. |
Highlight
i=$[$i+2] |
Now i will be incremented by 2 and the new value of i is 2. |
Highlightwhile [ $i -le $num ] | Then we check if 2 is less than or equal to 15.
|
Highlight
$((sum=sum+i)) |
The condition again is true; so we add 0+2.
Now sum has the value 2. |
Highlight
i=$[$i+2] |
Again the value of i will be incremented by 2.
So now value of i will be 2+2 ie 4. |
Highlight the output | And the next value of sum will be 4+2 ie 6. |
In the same way, the script will continue to add 2 to the previous value of i, till it exceeds 15.
| |
Display Slide 8
Summary |
Summary
In this tutorial we learnt two different syntax of for loop and we also learnt about the while loop. |
Display Slide 9
Assignment |
As an assignment -
Find the sum of the first "n" prime numbers. |
Display Slide 10
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 11
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 12
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 |
This is Ashwini Patil from IIT Bombay
Thank You for joining. |