BASH/C2/Nested-and-multilevel-if-elsif-statements/English-timed
From Script | Spoken-Tutorial
Revision as of 15:58, 23 March 2017 by Pratik kamble (Talk | contribs)
| Time | Narration |
| 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: |
| 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 condition 1 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 escape. |
| 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 | Type: dot slash nestedifelse.sh |
| 04:43 | The program verifies two conditions |
| 04:46 | i.e 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 | If condition1 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 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 summarize. |
| 10:15 | In this tutorial, we learned 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 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 teams. |
| 11:31 | This is Ashwini from IIT Bombay.Thank you for joining. |