BASH/C2/Logical-Operators/English
Title of script: Logical Operators in Bash
Author: Lavitha pereira
Keywords: Video tutorial, Bash Shell, Logical AND, Logical OR, Logical NOT
|
| |
---|---|---|
Display Slide | Dear friends, Welcome to the Spoken tutorial on
Logical Operators in Bash | |
Display Slide | In this tutorial, we will learn
| |
Display SlidePrerequisites | To follow this tutorial you should have knowledge of
If not, for relevant tutorials, please visit our website, which is as shown. | |
Display Slide | For this tutorial I am using
GNU Bash version4 or above is recommended for practice. | |
Display Slide
Logical Operators |
Let us understand the use of' Logical operators.'
| |
Display Slide
Logical AND Syntax: [ $condition1 ] && [ $condition2 ] [ $condition1 -a $condition2 ] |
Let's see the syntax oflogical AND
| |
Let us see the syntax ofLogical OR | ||
Display Slide
Logical OR [ $condition1 ] |
[ $condition2 ]
[ $condition1 -o $condition2 ] | |
Let us learn the usage of' Logical OR' andLogical AND using an example. | ||
Open file
On Terminal>> Typegedit logical.sh>> PressEnter |
I have already typed the code in a file namedlogical.sh.
Open theterminal by pressingctrl+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. | |
Let me explain the code now. | ||
#!/bin/bash | This is theshebang line. | |
read -p "Enter a Word : " string | The' read command' reads one line of data from the' standard input.'
- (hyphen) p display theprompt. string is a' variable' which stores the text entered by the user, during execution. | |
if [ -z "$string" ]; then | Theif statement checks whether the entered string isempty.
- (hyphen) z checks whether length ofstring iszero | |
Type man teston terminal to explore various otherstring comparisons. | ||
echo "Nothing was entered " | Theecho statement will print a message if nothing was entered. | |
[Highlight]
elif "$string" == *"raj"* && "$string" == *"jit"* ; then echo "$string contains both the words raj and jit" |
If thestring is not empty, the program will move to the firstelif statement.
Here it checks whether the entered' string' contains both the words'raj'andjit. If yes, then it echoes out a message. Please note thatlogical AND is used here. Hence, the message will be displayed only when both theconditions are satisfied. | |
[Highlight] | $string = *"jit"*; then
echo "$string contains word 'raj' or 'jit'" | |
else
echo "Sorry! entered word '$string' does not contain either 'raj' or 'jit'" |
Lastly, we have the defaultelse statement.
When all the above statements are false, then this statement will be executed. | |
fi | fi is the end of' multilevel if-else' loop.
Let us execute the program | |
On theterminal
>> Typechmod +x logical.sh>> PressEnter >> Type./logical.sh>> PressEnter |
Switch back to theterminal.
First make the file executable by typing- chmod space plus x space logical dot sh press' Enter' Now typedot slash'logical.shand press Enter' | |
Highlight
The output Enter a Word: Highlight Type: jitinraj jitinraj contains both the words raj and jit |
The prompt displaysEnter a word:
I will enterjitinraj 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 theconditions are satisfied, it displays the message. | |
Pressup arrow key>> go to./logical.sh>>
PressEnter |
Now let us execute the script again.
Press the up arrow key. Go to ./logical.sh and pressEnter | |
Highlight
Type: abhijit abijit contains word 'raj' or 'jit' |
The prompt displaysEnter a word:
This time I will enterabhijit. The output is: abhijit contains word 'raj' or 'jit'. | |
Please try executing the program with different inputs and observe the output. | ||
Let's switch back to our slides. | ||
Display Slide
Logical NOT |
Let's have a look at logical NOT operator.
| |
Display Slide
Logical NOT Syntax |
expression
[ ! expression ] |
The syntax of logical NOT operator is
Or
|
Let us see an example. | ||
Open file
OnTerminal>> Typegedit logicalNOT.sh>> PressEnter |
I have already typed the code in a file.
So, I will go to the terminal and typegedit logicalNOT.sh space ampersand sign Press' Enter.' | |
Now type the code as shown here in yourlogicalNOT.sh file. | ||
#!/bin/bash | This is the shebang line, as we already know. | |
[Highlight]
if [ ! -f "$1" ]; then |
$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 anargument. So, it will return true if the file exists and false if it does not exist. | |
Point to the NOT operator with cursor. | ThisNOT operator here inverses the returned value.
Which means, if a file of that name exists, the conditon will betrue. But the NOT operator will inverse its value tofalse. | |
echo "File $1 does not exist" | And it will display the message
FILE does not exist | |
else
echo "File $1 exist" |
And here in the else statement, it displays the message
FILE exists | |
fi | fi marks the end ofif loop. | |
On theterminal
touch test.txt |
Switch to theterminal. Let me clear the prompt.
Let's create an empty file with the nametest.txt So, type : touch space test dot txt | |
>> Typechmod +x logicalNOT.sh>> PressEnter
>> Type./logicalNOT.sh test.txt>> PressEnter |
Next, make the script executable by typing:
chmod space plus x space logicalNOT dot sh Now type'dot slash logical.sh space test.txtand press Enter.' | |
Point to test.txt in the previous command | Our shell script will check whether the file exists.
Our file'test.txtexists ; hence the value will be' true.' Then thelogical NOT will inverse that value and returnfalse. Because the evaluation isfalse, theelse statement is evaluated. | |
Show Output
File 'test.txt' exists |
And the message displayed is -
File 'test.txt' exists | |
Try executing the program again with argumenttest1.txt
And observe the control flow, as explained before. | ||
Display Slide
Summary |
Come back to our slides. Let us summarize.
In this tutorial we learnt the usage of,
| |
Display Slide
Assignment |
Check whether
| |
Display Slide | 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 | |
Display Slide
Spoken Tutorial Workshops |
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 | |
Display Slide
Acknowledgement |
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 | |
Display Slide | The script has been contributed by FOSSEE and spoken-tutorial team
This is Ashwini from IIT Bombay. Thank you for joining. |