 Open in App
Not now

# 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:

• 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
Related Articles