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. |