Previously we have seen shell scripting for arithmetic operations. In this article we will see shell scripting for relational operations.

Relational Operators :

    A Relational operators are those which defines the relation between two operands. They give either true or false depending upon the relation between the operands.
   
    Since they are a decision making statements we need to use if cases such as if,then and else.

    They are of 6 types of relational operators. We will see each operator with an example.

Equal to Operator ( -eq ) or ( == ) :

    The Equal to operator compares two operands and returns true if they are equal otherwise returns false.

    Open a file as equal.sh

$ vim equal.sh

    Paste the below code

Code:

#!/bin/sh

echo "Enter two numbers:"
read num1
read num2

if [ $num1 -eq $num2 ]
then
   echo "$num1 is equal to $num2"
else
   echo "$num1 is not equal to $num2"
fi

    Run the file,

jhony@ljlinux:~$ ./equal.sh
Enter two numbers:
10
10
10 is equal to 10

Explanation of the code:

Step 1: Getting the two inputs from the users as num1 and num2.
Step 2: With -eq operator we are comparing the given values.
Step 3: Using if statement will print the given values are equal.
Step 4: Else printing that the values are not equal.

Not equal to Operator ( -ne ) or ( != ) :
   
    The Not Equal to operator returns true if the two operands are not equal otherwise it returns false.

    Open a file as notequal.sh

$ vim notequal.sh

    Paste the below code

Code:

#!/bin/sh

echo "Enter two numbers:"
read num1
read num2

if [ $num1 -ne $num2 ]
then
   echo "$num1 is not equal to $num2"
else
   echo "The given values are equal"
fi

    Run the file,

jhony@ljlinux:~$ ./notequal.sh
Enter two numbers:
10
5
10 is not equal to 5

Explanation of the code:

Step 1: Getting the two inputs from the users as num1 and num2.
Step 2: With -ne operator we are comparing the given values.
Step 3: Using if statement will print the given values are not equal.
Step 4: Else printing that the given values are equal.

Less than Operator  ( -lt ) or ( < ) :

    Less than operator returns true if an operand is less than next operand otherwise returns false.

    Open a file as lessthan.sh

$ vim lessthan.sh

    Paste the below code

Code:

#!/bin/sh

echo "Enter two numbers:"
read num1
read num2

if [ $num1 -lt $num2 ]
then
   echo "$num1 is less than $num2"
else
   echo "$num2 is less than $num1"
fi

    Run the file,

jhony@ljlinux:~$ ./lessthan.sh
Enter two numbers:
5
8
5 is less than 8

Explanation of the code:

Step 1: Getting the two inputs from the users as num1 and num2.
Step 2: With -lt operator we are comparing the values.
Step 3: Using if statement will print the num1 as lesser value.
Step 4: Else printing num2 as lesser value.

Less than or equal to Operator ( -le ) or ( <= ) :

    Less than or equal to operator returns true if first operand is less than or equal to second operand otherwise returns false

    Open a file as lessequal.sh

$ vim lessequal.sh

    Paste the below code

Code:

#!/bin/sh

echo "Enter two numbers:"
read num1
read num2

if [ $num1 -le $num2 ]
then
   echo "$num1 is less than $num2"
else
   echo "$num2 is less than $num1"
else
   echo "Both numbers are equal"
fi

    Run the file,

jhony@ljlinux:~$ ./lessthan.sh
Enter two numbers:
5
5
Both numbers are equal

Explanation of the code:

Step 1: Getting the two inputs from the users as num1 and num2.
Step 2: With -le operator we are comparing the values.
Step 3: Using if statement will print the num1 as lesser value.
Step 4: Else printing num2 as lesser value otherwise printing both are equal.

Greater than Operator  ( -gt ) or ( > ) :

    Greater than operator return true if the first operand is greater than the second operand otherwise return false.

    Open a file as lessthan.sh

$ vim greaterthan.sh

    Paste the below code

Code:

#!/bin/sh

echo "Enter two numbers:"
read num1
read num2

if [ $num1 -gt $num2 ]
then
   echo "$num1 is greater than $num2"
else
   echo "$num2 is greater than $num1"
fi

    Run the file,

jhony@ljlinux:~$ ./greaterthan.sh
Enter two numbers:
5
8
8 is greater than 5

Explanation of the code:

Step 1: Getting the two inputs from the users as num1 and num2.
Step 2: With -gt operator we are comparing the values.
Step 3: Using if statement will print the num1 as greater value.
Step 4: Else printing num2 as greater value.

Greater than or equal to Operator ( -ge ) or ( >= ) :

    Greater than or equal to operator returns true if the operand is greater than or equal to the next operand otherwise returns false


    Open a file as greaterequal.sh

$ vim greaterequal.sh

    Paste the below code

Code:

#!/bin/sh

echo "Enter two numbers:"
read num1
read num2

if [ $num1 -ge $num2 ]
then
   echo "$num1 is greater than $num2"
else
   echo "$num2 is greater than $num1"
else
   echo "Both numbers are equal"
fi

    Run the file,

jhony@ljlinux:~$ ./greaterequal.sh
Enter two numbers:
5
9
9 is greater than 5

Explanation of the code:

Step 1: Getting the two inputs from the users as num1 and num2.
Step 2: With -ge operator we are comparing the values.
Step 3: Using if statement will print the num1 as greater value.
Step 4: Else printing num2 as greater value otherwise printing both are equal.

Things to be remembered:

It is important to define the conditional expressions inside square braces with spaces.

Example: [ $num1 <= $num2 ] is the correct format
                 [$num1 <= $num2] is not the right format.

We can either use the operator with alphabetic expression or direct operators( == or -eq ).

That's it for Relational operators. Feel free to ask if you have any queries.

Comments

  1. Be the first to add a comment.