BASH/C2/Nested-and-multilevel-if-elsif-statements/English-timed
From Script | Spoken-Tutorial
Revision as of 15:33, 5 December 2014 by PoojaMoolya (Talk | contribs)
|
|
00:00 | Dear friends, welcome to the spoken tutorial on Nested and multilevel if statement in BASH. |
00:09 | In this tutorial, we will learn about the |
00:12 | Nested if-else and |
00:14 | Multilevel if-else statement |
00:17 | We will do this by using a few examples. |
00:22 | To follow this tutorial, You should be familiar with Linux Operating System. |
00:28 | If not, for relevant tutorials please visit our website which is as shown |
00:35 | For this tutorial I am using |
00:38 | Ubuntu Linux 12.04 OS and |
00:42 | GNU Bash version 4.1.10 |
00:46 | GNU Bash version 4 or above is recommended for practice. |
00:52 | Let us understand the flow of Nested if-else statement. |
00:57 | Here, if condition1 is true, then condition 2 will be evaluated. |
01:04 | if condition2 is true, then statement 1 will be executed. |
01:10 | That means, only when both the conditions 1 and 2 are true , then statement 1 will be executed. |
01:19 | If condition1 is false, then statement 3 will be executed. |
01:25 | And if condition 2 is false, then statement 2 will be executed. |
01:31 | Let's see an example. |
01:33 | I have written code in the file nestedifelse.sh |
01:38 | I will open it. |
01:40 | Let me explain the code now. |
01:43 | This is the shebang line. |
01:45 | The variable NAME has been assigned the value anusha. |
01:50 | The variable PASSWORD has been assigned the value abc123. |
01:56 | The read command reads one line of data from the standard input. |
02:02 | - (hyphen) p flag displays the prompt. |
02:05 | The string after - (hyphen) p, “Enter name: ” will be displayed on the terminal. |
02:11 | myname is a variable which stores the text entered by user i.e. the user input. |
02:18 | The first if statement compares the two variables myname and NAME. |
02:24 | i.e. the user input and the value stored in variable Name i.e. anusha. |
02:31 | If the two values match, then the rest of the code in this if statement will be evaluated. |
02:38 | The read command reads and stores the entered password in variable mypassword. |
02:46 | Here, - (hyphen) s flag is for silent mode. |
02:49 | It means the text entered by the user will Not be displayed on the terminal. |
02:56 | Here we have another set of if-else statements. |
02:59 | This set of if-else statements is nested within the first if . |
03:05 | The second if statement compares variables mypassword and PASSWORD. |
03:12 | echo displays the message “Welcome” on the terminal when the if condition is true; |
03:18 | i.e. the passwords match. |
03:21 | -e enables interpretation of backslash escapes. |
03:27 | \n stands for new line; which means the string Welcome” will be printed on a new line. |
03:35 | When the if condition is not true,then the else condition will be executed; |
03:42 | i.e. when the passwords don't match, the else condition will be executed. |
03:48 | In this case, echo displays “Wrong password” |
03:53 | fi ends the inner if-else statement. |
03:57 | Coming back to our first if-else statement. |
04:01 | If the values in myname and NAME don't match, then this else statement will be executed. |
04:09 | This will echo the message “Wrong Name” on the terminal. |
04:14 | fi ends the outer if-else statement. |
04:18 | Now open the terminal window by pressing ctrl+alt and t keys simultaneously on your keyboard. |
04:27 | Make the file executable. |
04:29 | Type: chmod space plus x space nestedifelse.sh |
04:38 | Now type dot slash nestedifelse.sh |
04:43 | The program verifies two conditions |
04:46 | ie Name and Password |
04:48 | when it is executed on the terminal. |
04:52 | Here, the prompt displays Enter Name |
04:55 | Let us type anusha. |
04:57 | As this condition is true, the next if condition will be evaluated. |
05:02 | Now the prompt says Password |
05:05 | I will type the password as abc123 |
05:10 | The password matches with the value in the variable PASSWORD. |
05:15 | So, the prompt displays the message Welcome |
05:19 | Now let us execute the script again. |
05:21 | Press the up arrow key. |
05:24 | Go to dot slash nestedifelse.sh |
05:29 | Press Enter. |
05:31 | This time we will enter the same name, with different password. |
05:37 | So I will enter the name as anusha and password as 123. |
05:44 | The name values will match but the password values won't. |
05:49 | So, the message Wrong passwordwill be displayed. |
05:53 | This proves that the nested else statement within the first if statement was executed. |
06:01 | Let's execute the script once more. |
06:04 | This time we will give the name as swati |
06:08 | The message “Wrong name” is displayed. |
06:12 | This is because the name swati does not match the previously declared value anusha. |
06:19 | The control comes out of the first if statement and executes the else statement. |
06:25 | This prints the message Wrong name. |
06:29 | Now let us look at multilevel if-else statement. |
06:34 | if condition1 is true, then statement1 is executed. |
06:40 | Ifcondition1 is false, then condition 2 is evaluated. |
06:46 | if condition2 is true, then statement 2 is executed . |
06:52 | And if condition 2 is false, then condition N is evaluated. |
06:58 | If condition N is true, then statement N is executed. |
07:03 | And if Condition N is false, then statement X will be executed. |
07:10 | Let's look at an example. |
07:12 | I have a working example. |
07:14 | I will open it. Note that our file name is multilevel hyphen ifelse dot sh. |
07:23 | Let us go through the code. |
07:25 | This is the shebang line. |
07:27 | mystring is a variable which stores the word, input by user, during execution. |
07:34 | The if condition checks whether input string is null. |
07:39 | - (hyphen) z checks whether length of string is zero. |
07:44 | Type man test on terminal and explore various string comparison. |
07:51 | This echo statement will be printed, if nothing is entered. |
07:56 | The first elif condition checks whether the input string contains raj. |
08:03 | If it does, then this echo statement will be printed. |
08:08 | The wildcard character ensures that any word with raj in it, will be identified. |
08:15 | The next elif condition checks whether the input string contains the word jit. |
08:22 | If it does, then this echo statement will be printed. |
08:27 | The else condition will be executed when all the above conditions fail. |
08:33 | And it will display the message Sorry! Input does not contain either 'raj' or jit |
08:41 | fi indicates the end of multilevel if-else statement. |
08:46 | Let us now execute the program. |
08:48 | Come back to our terminal. |
08:51 | Type: chmod space plus x space multilevel hyphen ifelse dot sh |
09:00 | Type dot slash multilevel hyphen ifelse dot sh |
09:06 | We are prompted for an input. |
09:09 | Let us give different inputs and see what happens each time. |
09:14 | First I will press Enter without typing anything. |
09:19 | The message Nothing was Entered is displayed. |
09:22 | And the control comes out of the multilevel if-else statement. |
09:28 | Let me clear the prompt. |
09:30 | Let us try executing the script with a different input. |
09:34 | Press up arrow key. |
09:36 | Go to dot slash multilevel hyphen ifelse dot sh. |
09:41 | Press Enter. |
09:43 | The prompt displays "Enter a Word". |
09:45 | I will type abhijit. |
09:48 | The output displayed is “abhijit contains word jit”. |
09:53 | This shows that the control flowed to the third condition in our code. |
09:59 | The first two conditions did not match. |
10:03 | The same logic is applicable for all the conditions. |
10:07 | Try executing the program with different inputs and check the results. |
10:13 | Let us summarise. |
10:15 | In this tutorial we learnt, the usage of |
10:18 | Nested If-else: with Name and Password verification and |
10:23 | Multilevel if-else: String comparison program |
10:28 | As an assignment, write a program to output different messages when number is |
10:34 | greater than 3, |
10:35 | lesser than 3, |
10:37 | or equal to 3, |
10:39 | or when the user input is empty |
10:42 | Watch the video available at the link shown below |
10:45 | It summarizes the Spoken Tutorial project |
10:48 | If you do not have good bandwidth, you can download and watch it |
10:53 | The Spoken Tutorial Project Team |
10:55 | Conducts workshops using spoken tutorials |
10:58 | Gives certificates to those who pass an online test |
11:02 | For more details, please write to contact@spoken-tutorial.org |
11:09 | Spoken Tutorial Project is a part of the Talk to a Teacher project |
11:13 | It is supported by the National Mission on Education through ICT, MHRD, Government of India |
11:20 | More information on this Mission is available at the link shown below |
11:26 | The script has been contributed by FOSSEE and Spoken Tutorial Team. |
11:31 | This is Ashwini from IIT Bombay.
Thank you for joining. |