Difference between revisions of "BASH/C2/Logical-Operators/English"

From Script | Spoken-Tutorial
Jump to: navigation, search
(Blanked the page)
Line 1: Line 1:
'''Title of script''': Logical Operators in Bash
 
  
'''Author:''' Lavitha pereira
 
 
'''Keywords: Video tutorial, Bash Shell, Logical AND, Logical OR, Logical NOT'''
 
 
 
{| style="border-spacing:0;"
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Visual Cue
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Narration
 
 
|-
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Display Slide
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Dear friends, Welcome to the Spoken tutorial on
 
 
'''Logical Operators in Bash '''
 
 
|-
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Display Slide
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| In this tutorial, we will learn
 
 
* Use of '''Logical AND'''
 
* '''Logical OR'''
 
* '''Logical NOT'''
 
* using a few examples
 
 
|-
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Display Slide '''Prerequisites'''
 
 
 
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| To follow this tutorial you should have knowledge of''' '''
 
 
* '''if-else statement, '''
 
* '''command line arguments '''and
 
* '''quoting '''in''' BASH.'''
 
 
If not, for relevant tutorials, please visit our website, which is as shown.
 
 
|-
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Display Slide
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| For this tutorial I am using
 
* '''Ubuntu Linux 12.04''' OS
 
* '''GNU Bash''' version '''4.1.10'''
 
 
'''GNU Bash '''version '''4''' or above is recommended for practice.
 
 
|-
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Display Slide
 
 
Logical Operators
 
 
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Let us understand the use of''' Logical operators.'''
 
 
* '''Logical operators''' are mainly used to control program flow
 
* '''Logical operators''' helps to link two''' expressions''' or '''conditions'''
 
* They can be a part of''' if, while, '''or some other''' control statements '''
 
 
|-
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Display Slide
 
 
Logical AND
 
 
Syntax:
 
 
'''<nowiki>[ $condition1 ] && [ $condition2 ]</nowiki>'''
 
 
 
'''<nowiki>[ $condition1 -a $condition2 ]</nowiki>'''
 
 
 
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Let's see the syntax of '''logical AND'''
 
 
* '''Opening square bracket space dollar symbol condition1 space closing square bracket space ampersand ampersand space opening square bracket space dollar symbol condition2 space closing square bracket'''
 
* Or we can use this syntax
 
* '''Opening square bracket space dollar symbol condition1 space hyphen a space dollar symbol condition2 space closing square bracket'''
 
* '''Logical AND '''returns''' true '''when both''' condition1 '''and '''condition2''' are '''true'''
 
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"|
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Let us see the syntax of '''Logical OR'''
 
 
|-
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Display Slide
 
 
Logical OR
 
 
 
'''<nowiki>[ $condition1 ] || [ $condition2 ]</nowiki>'''
 
 
 
'''<nowiki>[ $condition1 -o $condition2 ]</nowiki>'''
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"|
 
* '''Opening square bracket space dollar symbol condition1 space closing square bracket space vertical bar vertical bar space opening square bracket space dollar symbol condition2 space closing square bracket'''
 
* Or we can use this syntax
 
* '''Opening square bracket space dollar symbol condition1 space hyphen o space dollar symbol condition2 space closing square bracket'''
 
* '''Logical OR '''returns''' true '''when either''' condition1 '''or '''condition2 '''is '''true'''
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"|
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Let us learn the usage of''' Logical OR''' and '''Logical AND''' using an example.
 
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Open file
 
 
On T'''ermina'''l>> Type '''gedit logical.sh'''>> Press '''Enter'''
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| I have already typed the code in a file named '''logical.sh'''.
 
 
Open the '''terminal''' by pressing '''ctrl+alt+t''' keys simultaneousely on your keyboard.
 
 
Type:
 
 
'''gedit logical.sh &'''
 
 
press''' Enter.'''
 
 
Now type the code as shown here in your''' logical.sh '''file.
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"|
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Let me explain the code now.
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <nowiki>#!/bin/bash </nowiki>
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| This is the '''shebang line.'''
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| read -p "Enter a Word : " string
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| The''' read command''' reads one line of data from the''' standard input.'''
 
 
'''- (hyphen) p''' display the '''prompt.'''
 
 
'''string''' is a''' variable''' which stores the text entered by the user, during execution.
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <nowiki>if [ -z "$string" ]; then </nowiki>
 
 
 
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| The '''if statement''' checks whether the entered string is '''empty.'''
 
 
'''- (hyphen) z '''checks whether length of '''string''' is '''zero'''
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"|
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Type '''man test '''on''' terminal '''to explore various other '''string comparisons'''.
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| echo "Nothing was entered "
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| The '''echo''' '''statement '''will print a message if nothing was entered.
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''<nowiki>[Highlight]</nowiki>'''
 
 
<nowiki>elif [[ "$string" == *"raj"* ]] && [[ "$string" == *"jit"* ]]; then </nowiki>
 
 
echo "$string contains both the words raj and jit"
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| If the '''string''' is not empty, the program will move to the first '''elif statement.'''
 
 
Here it checks whether the entered''' string''' contains both the words '''''raj '''''and '''''jit'''''.
 
 
If yes, then it echoes out a message.
 
 
Please note that '''logical AND''' is used here.
 
 
Hence, the message will be displayed only when both the '''conditions''' are satisfied.
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''<nowiki>[Highlight]</nowiki>'''
 
 
<nowiki>elif [[ "$string" == *"raj"* ]] || [[ $string = *"jit"* ]]; then </nowiki>
 
 
echo "$string contains word 'raj' or 'jit'"
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| If that is not so, then the program will move onto the second '''elif statement.'''
 
 
Here it checks whether the''' entered string''' contains either'' '''raj''''' or '''''jit.'''''
 
 
If yes, then it displays a message.
 
 
Please note that '''logical OR''' is used here.
 
 
The message will be displayed only when any one of the '''conditions''' are satisfied.
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| else
 
 
echo "Sorry! entered word '$string' does not contain either 'raj' or 'jit'"
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Lastly, we have the default '''else statement.'''
 
 
When all the above statements are false, then this statement will be executed.
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| fi
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''fi''' is the end of''' multilevel if-else''' loop.
 
 
Let us execute the program
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| On the '''terminal'''
 
 
 
>> Type '''chmod +x logical.sh'''>> Press '''Enter'''
 
 
>> Type '''./logical.sh'''>> Press '''Enter'''
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Switch back to the '''terminal.'''
 
 
First make the file executable by typing-
 
 
'''chmod space plus x space logical dot sh '''
 
 
press''' Enter'''
 
 
Now type '''dot slash''' '''logical.sh '''and press''' Enter'''
 
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''Highlight'''
 
 
'''The output'''
 
 
 
'''Enter a Word:'''
 
 
Highlight
 
 
Type:
 
 
'''jitinraj'''
 
 
 
'''jitinraj contains both the words raj and jit'''
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| The prompt displays '''Enter a word:'''
 
 
I will enter '''jitinraj'''
 
 
The output is:
 
 
'''jitinraj contains both the words raj and jit'''
 
 
This means that the control was passed to the second statement.
 
 
And as both the '''conditions''' are satisfied, it displays the message.
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Press '''up arrow key'''>> go to '''./logical.sh>>'''
 
 
Press '''Enter'''
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now let us execute the script again.
 
 
Press the up '''arrow key. '''
 
 
Go to .'''/logical.sh '''and press '''Enter'''
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Highlight
 
 
Type:
 
 
'''abhijit'''
 
 
'''abijit contains word 'raj' or 'jit''''
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| The prompt displays '''Enter a word:'''
 
 
This time I will enter '''abhijit.'''
 
 
The output is:
 
 
'''abhijit contains word 'raj' or 'jit'.'''
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"|
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Please try executing the program with different inputs and observe the output.
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"|
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Let's switch back to our slides.
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Display Slide
 
 
Logical NOT
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Let's have a look at '''logical NOT '''operator.
 
 
* It inverts the '''boolean''' value of an expression.
 
* Which means, it returns '''true''' if the expression is '''false'''
 
* and returns '''false''' if the expression is '''true'''
 
 
 
|-
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Display Slide
 
 
Logical NOT
 
 
Syntax
 
 
<nowiki>! expression </nowiki>
 
 
<nowiki>[ ! expression ]</nowiki>
 
 
 
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| The syntax of '''logical NOT '''operator is
 
 
* '''Exclamation mark''' space '''expression'''
 
 
Or
 
 
* '''Opening square bracket space exclamation mark space expression space closing square bracket'''
 
 
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"|
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Let us see an example.
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Open file
 
 
On '''Terminal'''>> Type '''gedit logicalNOT.sh'''>> Press '''Enter'''
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| I have already typed the code in a file.
 
 
So, I will go to the '''terminal '''and type '''gedit logicalNOT.sh space ampersand sign'''
 
 
Press''' Enter.'''
 
 
|-
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"|
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Now type the code as shown here in your '''logicalNOT.sh''' file.
 
 
|-
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| <nowiki>#!/bin/bash</nowiki>
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| This is the''' shebang line, '''as we already know.
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''<nowiki>[Highlight]</nowiki>'''
 
 
<nowiki>if [ ! -f "$1" ]; then</nowiki>
 
 
 
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''$1''' is the first''' command line argument '''passed to the script.
 
 
 
'''- (hyphen) f '''checks if the file exists with the same name that was passed as an '''argument'''.
 
 
So, it will return '''true '''if the file exists and '''false '''if it does not exist.
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Point to the NOT operator with cursor.
 
 
 
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| This '''NOT operator''' here inverses the returned value.
 
 
Which means, if a file of that name exists, the conditon will be '''true.'''
 
 
But the '''NOT operator '''will inverse its value to '''false'''.
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''echo "File $1 does not exist"'''
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| And it will display the message
 
 
'''FILE does not exist'''
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| else
 
 
echo "File $1 exist"
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| And here in the '''else statement, '''it displays the message
 
 
'''FILE exists'''
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| fi
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| '''fi''' marks the end of '''if loop.'''
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| On the '''terminal'''
 
 
'''touch test.txt'''
 
 
 
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Switch to the '''terminal'''.  Let me clear the prompt.
 
 
Let's create an empty file with the name '''test.txt'''
 
 
So, type :
 
 
'''touch space test dot txt'''
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| >> Type '''chmod +x logicalNOT.sh'''>> Press '''Enter'''
 
 
>> Type '''./logicalNOT.sh test.txt'''>> Press '''Enter'''
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Next, make the script executable by typing:''' '''
 
 
'''chmod space plus x space logicalNOT dot sh'''
 
 
Now type '''dot slash logical.sh space test.txt '''and press''' Enter.'''
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Point to test.txt in the previous command
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Our shell script will check whether the file exists.
 
 
Our file '''test.txt '''exists <nowiki>;</nowiki>''''' hence the value will be''' true.'''
 
 
Then the '''logical NOT''' will inverse that value and return '''false.'''
 
 
Because the evaluation is '''false''', the '''else statement''' is evaluated.
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Show Output
 
 
'''File 'test.txt' exists'''
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| And the message displayed is -
 
 
'''File 'test.txt' exists'''
 
 
|-
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"|
 
| style="border-top:none;border-bottom:1pt solid #000001;border-left:1pt solid #000001;border-right:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Try executing the program again with argument '''test1.txt'''
 
 
And observe the control flow, as explained before.
 
 
|-
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Display Slide
 
 
Summary
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Come back to our slides.  Let us summarize.
 
 
In this tutorial we learnt the usage of,
 
 
* '''logical AND'''
 
* '''logical OR '''and
 
* '''logical NOT'''
 
 
|-
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Display Slide
 
 
Assignment
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Check whether
 
 
* a file exists and is executable
 
* using the '''logical operators '''
 
* explained in this tutorial
 
* (Hint: '''man test''')
 
 
 
|-
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Display Slide
 
 
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Watch the video available at the link shown below
 
 
It summarizes the Spoken Tutorial project
 
 
If you do not have good bandwidth, you can download and watch it
 
 
|-
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Display Slide
 
 
 
Spoken Tutorial Workshops
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| 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
 
 
|-
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Display Slide
 
 
Acknowledgement
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| 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
 
 
|-
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| Display Slide
 
| style="border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.191cm;padding-right:0.191cm;"| The script has been contributed by FOSSEE and spoken-tutorial team
 
 
This is Ashwini from IIT Bombay.
 
 
Thank you for joining.
 
 
|}
 

Revision as of 12:40, 25 November 2014

Contributors and Content Editors

Ashwini, Nancyvarkey