Difference between revisions of "BASH/C2/Nested-and-multilevel-if-elsif-statements/English-timed"
From Script | Spoken-Tutorial
PoojaMoolya (Talk | contribs) |
PoojaMoolya (Talk | contribs) |
||
| Line 137: | Line 137: | ||
|- | |- | ||
| 02:49 | | 02:49 | ||
| − | | It means the text entered by the user will | + | | It means the text entered by the user will Not be displayed on the '''terminal.''' |
|- | |- | ||
| Line 165: | Line 165: | ||
|- | |- | ||
| 03:27 | | 03:27 | ||
| − | | '''\n '''stands for new line; which means the string | + | | '''\n '''stands for new line; which means the string '''Welcome” '''will be printed on a new line. |
|- | |- | ||
| Line 209: | Line 209: | ||
|- | |- | ||
| 04:29 | | 04:29 | ||
| − | | Type: '''chmod''' space''' plus x''' space''' nestedifelse.sh ''' | + | | Type: '''chmod''' space''' plus x''' space '''nestedifelse.sh ''' |
|- | |- | ||
| Line 229: | Line 229: | ||
|- | |- | ||
| 04:52 | | 04:52 | ||
| − | | Here, the '''prompt''' displays | + | | Here, the '''prompt''' displays '''Enter Name''' |
|- | |- | ||
| Line 241: | Line 241: | ||
|- | |- | ||
| 05:02 | | 05:02 | ||
| − | | Now the '''prompt '''says ''' | + | | Now the '''prompt '''says '''Password''' |
|- | |- | ||
| Line 253: | Line 253: | ||
|- | |- | ||
| 05:15 | | 05:15 | ||
| − | | So, the prompt displays the message | + | | So, the prompt displays the message '''Welcome''' |
|- | |- | ||
| Line 273: | Line 273: | ||
|- | |- | ||
| 05:31 | | 05:31 | ||
| − | | | + | | This time we will enter the same name, with different password. |
|- | |- | ||
| Line 285: | Line 285: | ||
|- | |- | ||
| 05:49 | | 05:49 | ||
| − | | So, the message | + | | So, the message '''Wrong password'''will be displayed. |
|- | |- | ||
| Line 313: | Line 313: | ||
|- | |- | ||
| 06:25 | | 06:25 | ||
| − | | This prints the message | + | | This prints the message '''Wrong name.''' |
|- | |- | ||
| Line 321: | Line 321: | ||
|- | |- | ||
|06:34 | |06:34 | ||
| − | | if''' condition1''' is '''true, '''then''' statement1''' is executed. | + | | if ''' condition1''' is '''true,''' then '''statement1''' is executed. |
|- | |- | ||
| 06:40 | | 06:40 | ||
| − | | If''' condition1''' is '''false | + | | If'''condition1''' is '''false''', then''' condition 2''' is evaluated. |
|- | |- | ||
| 06:46 | | 06:46 | ||
| − | | if''' condition2''' is '''true | + | | if '''condition2''' is '''true''', then '''statement 2''' is executed . |
|- | |- | ||
| Line 353: | Line 353: | ||
|- | |- | ||
| 07:14 | | 07:14 | ||
| − | | I will open it. Note that our file name is '''multilevel | + | | I will open it. Note that our file name is '''multilevel hyphen ifelse dot sh'''. |
|- | |- | ||
| Line 377: | Line 377: | ||
|- | |- | ||
| 07:44 | | 07:44 | ||
| − | |Type '''man test '''on''' terminal '''and explore various '''string ''' comparison. | + | |Type '''man test ''' on '''terminal '''and explore various '''string ''' comparison. |
|- | |- | ||
| Line 385: | Line 385: | ||
|- | |- | ||
| 07:56 | | 07:56 | ||
| − | | The first '''elif condition '''checks whether the''' input string''' contains '''raj.''' | + | | The first '''elif condition''' checks whether the''' input string''' contains '''raj.''' |
|- | |- | ||
| 08:03 | | 08:03 | ||
| − | |If it does, then this '''echo statement '''will be printed. | + | |If it does, then this '''echo statement''' will be printed. |
|- | |- | ||
| Line 409: | Line 409: | ||
|- | |- | ||
| 08:33 | | 08:33 | ||
| − | |And it will display the message | + | |And it will display the message '''Sorry! Input does not contain either 'raj' or jit''' |
|- | |- | ||
| Line 425: | Line 425: | ||
|- | |- | ||
| 08:51 | | 08:51 | ||
| − | |Type: '''chmod space plus x space multilevel | + | |Type: '''chmod space plus x space multilevel hyphen ifelse dot sh ''' |
|- | |- | ||
| 09:00 | | 09:00 | ||
| − | | Type '''dot slash multilevel | + | | Type '''dot slash multilevel hyphen ifelse dot sh''' |
|- | |- | ||
| Line 445: | Line 445: | ||
|- | |- | ||
| 09:19 | | 09:19 | ||
| − | | The message | + | | The message '''Nothing was Entered ''' is displayed. |
|- | |- | ||
Revision as of 15:33, 5 December 2014
| |
|
| 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. |