0% found this document useful (0 votes)
21 views

Unix Basic Operators

Unix

Uploaded by

Ginny Weasly
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Unix Basic Operators

Unix

Uploaded by

Ginny Weasly
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

UNIX - SHELL BASIC OPERATORS

http://www.tutorialspoint.com/unix/unix-basic-operators.htm Copyright © tutorialspoint.com

There are various operators supported by each shell. Our tutorial is based on default shell Bourne so
we are going to cover all the important Bourne Shell operators in the tutorial.

There are following operators which we are going to discuss −

Arithmetic Operators.

Relational Operators.

Boolean Operators.

String Operators.

File Test Operators.

The Bourne shell didn't originally have any mechanism to perform simple arithmetic but it uses
external programs, either awk or the must simpler program expr.

Here is simple example to add two numbers −

#!/bin/sh

val=`expr 2 + 2`
echo "Total value : $val"

This would produce following result −

Total value : 4

There are following points to note down −

There must be spaces between operators and expressions for example 2+2 is not correct,
where as it should be written as 2 + 2.

Complete expression should be enclosed between ``, called inverted commas.

Arithmetic Operators
There are following arithmetic operators supported by Bourne Shell.

Assume variable a holds 10 and variable b holds 20 then −

Show Examples

Operator Description Example

+ Addition - Adds values on either side of the `expr a + b` will give 30


operator

- Subtraction - Subtracts right hand operand `expr a − b` will give -10


from left hand operand

* Multiplication - Multiplies values on either side `expr a\*b` will give 200
of the operator

/ Division - Divides left hand operand by right `expr b/a` will give 2
hand operand

% Modulus - Divides left hand operand by right `expr ba` will give 0
hand operand and returns remainder
= Assignment - Assign right operand in left a=$b would assign value of b into
operand a

== Equality - Compares two numbers, if both are [ a == b ] would return false.


same then returns true.

!= Not Equality - Compares two numbers, if both [ a! = b ] would return true.


are different then returns true.

It is very important to note here that all the conditional expressions would be put inside square
braces with one spaces around them, for example [ a == b ] is correct where as [a == b] is incorrect.

All the arithmetical calculations are done using long integers.

Relational Operators:
Bourne Shell supports following relational operators which are specific to numeric values. These
operators would not work for string values unless their value is numeric.

For example, following operators would work to check a relation between 10 and 20 as well as in
between "10" and "20" but not in between "ten" and "twenty".

Assume variable a holds 10 and variable b holds 20 then −

Show Examples

Operator Description Example

-eq Checks if the value of two operands are equal [ a − eqb ] is not true.
or not, if yes then condition becomes true.

-ne Checks if the value of two operands are equal [ a − neb ] is true.
or not, if values are not equal then condition
becomes true.

-gt Checks if the value of left operand is greater [ a − gtb ] is not true.
than the value of right operand, if yes then
condition becomes true.

-lt Checks if the value of left operand is less than [ a − ltb ] is true.
the value of right operand, if yes then
condition becomes true.

-ge Checks if the value of left operand is greater [ a − geb ] is not true.
than or equal to the value of right operand, if
yes then condition becomes true.

-le Checks if the value of left operand is less than [ a − leb ] is true.
or equal to the value of right operand, if yes
then condition becomes true.

It is very important to note here that all the conditional expressions would be put inside square
braces with one spaces around them, for example [ a <= b ] is correct where as [a <= b] is incorrect.

Boolean Operators
There are following boolean operators supported by Bourne Shell.

Assume variable a holds 10 and variable b holds 20 then −

Show Examples
Operator Description Example

! This is logical negation. This inverts a true [ ! false ] is true.


condition into false and vice versa.

-o This is logical OR. If one of the operands is true [ a − lt20 − ob -gt 100 ] is true.
then condition would be true.

-a This is logical AND. If both the operands are [ a − lt20 − ab -gt 100 ] is false.
true then condition would be true otherwise it
would be false.

String Operators
There are following string operators supported by Bourne Shell.

Assume variable a holds "abc" and variable b holds "efg" then −

Show Examples

Operator Description Example

= Checks if the value of two operands are equal [ a = b ] is not true.


or not, if yes then condition becomes true.

!= Checks if the value of two operands are equal [ a! = b ] is true.


or not, if values are not equal then condition
becomes true.

-z Checks if the given string operand size is zero. [ -z $a ] is not true.


If it is zero length then it returns true.

-n Checks if the given string operand size is non- [ -z $a ] is not false.


zero. If it is non-zero length then it returns true.

str Check if str is not the empty string. If it is [ $a ] is not false.


empty then it returns false.

File Test Operators


There are following operators to test various properties associated with a Unix file.

Assume a variable file holds an existing file name "test" whose size is 100 bytes and has read,
write and execute permission on −

Show Examples

Operator Description Example

-b file Checks if file is a block special file if yes then [ -b $file ] is false.
condition becomes true.

-c file Checks if file is a character special file if yes [ -c $file ] is false.


then condition becomes true.

-d file Check if file is a directory if yes then condition [ -d $file ] is not true.
becomes true.

-f file Check if file is an ordinary file as opposed to a [ -f $file ] is true.


directory or special file if yes then condition
becomes true.
-g file Checks if file has its set group ID SGID bit set if [ -g $file ] is false.
yes then condition becomes true.

-k file Checks if file has its sticky bit set if yes then [ -k $file ] is false.
condition becomes true.

-p file Checks if file is a named pipe if yes then [ -p $file ] is false.


condition becomes true.

-t file Checks if file descriptor is open and associated [ -t $file ] is false.


with a terminal if yes then condition becomes
true.

-u file Checks if file has its set user id SUID bit set if [ -u $file ] is false.
yes then condition becomes true.

-r file Checks if file is readable if yes then condition [ -r $file ] is true.


becomes true.

-w file Check if file is writable if yes then condition [ -w $file ] is true.


becomes true.

-x file Check if file is execute if yes then condition [ -x $file ] is true.


becomes true.

-s file Check if file has size greater than 0 if yes then [ -s $file ] is true.
condition becomes true.

-e file Check if file exists. Is true even if file is a [ -e $file ] is true.


directory but exists.

C Shell Operators
Following link would give your brief idea on C Shell Operators.

C Shell Operators

Korn Shell Operators


Following link would give your brief idea on Korn Shell Operators.

Korn Shell Operators


Loading [MathJax]/jax/output/HTML-CSS/jax.js

You might also like