Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Basic Operators in Shell Scripting

  • Difficulty Level : Easy
  • Last Updated : 06 Oct, 2021

There are 5 basic operators in bash/shell scripting:

  • Arithmetic Operators
  • Relational Operators
  • Boolean Operators
  • Bitwise Operators
  • File Test Operators

1. Arithmetic Operators: These operators are used to perform normal arithmetics/mathematical operations. There are 7 arithmetic operators:

  • Addition (+): Binary operation used to add two operands.
  • Subtraction (-): Binary operation used to subtract two operands.
  • Multiplication (*): Binary operation used to multiply two operands.
  • Division (/): Binary operation used to divide two operands.
  • Modulus (%): Binary operation used to find remainder of two operands.
  • Increment Operator (++): Unary operator used to increase the value of operand by one.
  • Decrement Operator (- -): Unary operator used to decrease the value of a operand by one

C




#!/bin/bash
  
#reading data from the user
read - p 'Enter a : ' a
           read
    - p 'Enter b : ' b
  
          add
    = $((a + b))
        echo Addition of a and b are $add
  
            sub
    = $((a - b))
        echo Subtraction of a and b are $sub
  
            mul
    = $((a * b))
        echo Multiplication of a and b are $mul
  
            div
    = $((a / b))
        echo division of a and b are $div
  
            mod
    = $((a % b))
          echo Modulus of a
      and b are $mod
  
      ((++a))
          echo Increment
          operator when applied on "a" results into a = $a
  
      ((--b))
          echo Decrement
          operator when applied on "b" results into b = $b

Output:



2. Relational Operators: Relational operators are those operators which define the relation between two operands. They give either true or false depending upon the relation. They are of 6 types:

  • ‘==’ Operator: Double equal to operator compares the two operands. Its returns true is they are equal otherwise returns false.
  • ‘!=’ Operator: Not Equal to operator return true if the two operands are not equal otherwise it returns false.
  • ‘<‘ Operator: Less than operator returns true if first operand is less than second operand otherwise returns false.
  • ‘<=’ Operator: Less than or equal to operator returns true if first operand is less than or equal to second operand otherwise returns false
  • ‘>’ Operator: Greater than operator return true if the first operand is greater than the second operand otherwise return false.
  • ‘>=’ Operator: Greater than or equal to operator returns true if first operand is greater than or equal to second operand otherwise returns false

C




#!/bin/bash
   
#reading data from the user
read -p 'Enter a : ' a
read -p 'Enter b : ' b
   
if(( $a==$b ))
then
    echo a is equal to b.
else
    echo a is not equal to b.
fi
   
if(( $a!=$b ))
then
    echo a is not equal to b.
else
    echo a is equal to b.
fi
   
if(( $a<$b ))
then
    echo a is less than b.
else
    echo a is not less than b.
fi
   
if(( $a<=$b ))
then
    echo a is less than or equal to b.
else
    echo a is not less than or equal to b.
fi
   
if(( $a>$b ))
then
    echo a is greater than b.
else
    echo a is not greater than b.
fi
   
if(( $a>=$b ))
then
    echo a is greater than or equal to b.
else
    echo a is not greater than or equal to b.
fi

Output:

3. Logical Operators : They are also known as boolean operators. These are used to perform logical operations. They are of 3 types: 

  • Logical AND (&&): This is a binary operator, which returns true if both the operands are true otherwise returns false.
  • Logical OR (||): This is a binary operator, which returns true is either of the operand is true or both the operands are true and return false if none of then is false.
  • Not Equal to (!): This is a unary operator which returns true if the operand is false and returns false if the operand is true.

C




#!/bin/bash
  
#reading data from the user
read -p 'Enter a : ' a
read -p 'Enter b : ' b
  
if(($a == "true" & $b == "true" ))
then
    echo Both are true.
else
    echo Both are not true.
fi
  
if(($a == "true" || $b == "true" ))
then
    echo Atleast one of them is true.
else
    echo None of them is true.
fi
  
if(( ! $a == "true"  ))
then
    echo "a" was initially false.
else
     echo "a" was initially true.
 fi

Output:



4. Bitwise Operators: A bitwise operator is an operator used to perform bitwise operations on bit patterns. They are of 6 types:

  • Bitwise And (&): Bitwise & operator performs binary AND operation bit by bit on the operands.
  • Bitwise OR (|): Bitwise | operator performs binary OR operation bit by bit on the operands.
  • Bitwise XOR (^): Bitwise ^ operator performs binary XOR operation bit by bit on the operands.
  • Bitwise complement (~): Bitwise ~ operator performs binary NOT operation bit by bit on the operand.
  • Left Shift (<<): This operator shifts the bits of the left operand to left by number of times specified by right operand.
  • Right Shift (>>): This operator shifts the bits of the left operand to right by number of times specified by right operand.

C




#!/bin/bash
  
#reading data from the user
read -p 'Enter a : ' a
read -p 'Enter b : ' b
  
bitwiseAND=$(( a&b ))
echo Bitwise AND of a and b is $bitwiseAND
  
bitwiseOR=$(( a|b ))
echo Bitwise OR of a and b is $bitwiseOR
  
bitwiseXOR=$(( a^b ))
echo Bitwise XOR of a and b is $bitwiseXOR
  
bitiwiseComplement=$(( ~a ))
echo Bitwise Compliment of a is $bitiwiseComplement
  
leftshift=$(( a<<1 ))
echo Left Shift of a is $leftshift
  
rightshift=$(( b>>1 ))
echo Right Shift of b is $rightshift

Output:

5. File Test Operator: These operators are used to test a particular property of a file.

  • -b operator: This operator check whether a file is a block special file or not. It returns true if the file is a block special file otherwise false.
  • -c operator: This operator checks whether a file is a character special file or not. It returns true if it is a character special file otherwise false.
  • -d operator: This operator checks if the given directory exists or not. If it exists then operators returns true otherwise false.
  • -e operator: This operator checks whether the given file exists or not. If it exits this operator returns true otherwise false.
  • -r operator: This operator checks whether the given file has read access or not. If it has read access then it returns true otherwise false.
  • -w operator: This operator check whether the given file has write access or not. If it has write then it returns true otherwise false.
  • -x operator: This operator check whether the given file has execute access or not. If it has execute access then it returns true otherwise false.
  • -s operator: This operator checks the size of the given file. If the size of given file is greater than 0 then it returns true otherwise it is false.

C




#!/bin/bash
  
#reading data from the user
read -p 'Enter file name : ' FileName
  
if [ -e $FileName ]
then
    echo File Exist
else
    echo File doesnot exist
fi
  
if [ -s $FileName ]
then
    echo The given file is not empty.
else
    echo The given file is empty.
fi
  
if [ -r $FileName ]
then
    echo The given file has read access.
else
    echo The given file does not has read access.
fi
  
if [ -w $FileName ]
then
    echo The given file has write access.
else
    echo The given file does not has write access.
fi
  
if [ -x $FileName ]
then
    echo The given file has execute access.
else
    echo The given file does not has execute access.
fi

Output:




My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!