11 Comparison Operators - kumar159man/MyShellLearning GitHub Wiki

Comparison Operators

Comparison on numbers

Checking two numbers are equal or not

By using test command we can evaluate the operators

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ test 2 -eq 2
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ test 2 -eq 12
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
1
  • 0->True
  • 1->False

Another way to do that is by using []

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [ 2 -eq 2 ]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [ 2 -eq 12 ]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
1

Another way to do that is using . This one is more advanced

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ 2 -eq 2 ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ 2 -eq 21 ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
1

not equal

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ 2 -ne 3 ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ 2 -ne 2 ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
1

less than

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ 5 -lt 3 ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
1
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ 5 -lt 12 ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0

greater than

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ 5 -gt 12 ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
1
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ 15 -gt 12 ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0

less than equal to

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ 15 -le 12 ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
1
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ 5 -le 12 ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ 5 -le 5 ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0

greater than equal to

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ 15 -ge 12 ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ 15 -ge 122 ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
1
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ 15 -ge 15 ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0

Negation

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ ! 2 -eq 2  ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
1

Comparison on Strings

Check whether a string is empty or not

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ c=""
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ -z $c ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ c="CHELSEA"
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ -z $c ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
1

Check whether a string length is nonzero

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ c=""
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ -n $c ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
1
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ c="CHELSEA"
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ -n $c ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0

Check equality of two string

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ a="Chelsea"
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ b="CHELSEA"
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ $a == $b ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
1
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ b="Chelsea"
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ $a == $b ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?

Comparing non equal string

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $a
Chelsea
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $b
Chelsea
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ $a != $b ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
1
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ b="CHELSEA"
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ $a != $b ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0

Operators for file

Check whether a path/file is a directory

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ pwd
/home/myubuntu/Desktop/shellScripts
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ ls
case1.sh  case.sh  cmdArg.sh  cut.txt  first.sh  grepUsage.txt  regex.txt  search.txt  second.sh  third.sh  variables.txt
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ -d regex.txt ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
1
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ -d /home/myubuntu/Desktop/shellScripts/ ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0

Check whether a path/file is a file

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ pwd
/home/myubuntu/Desktop/shellScripts
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ ls
case1.sh  case.sh  cmdArg.sh  cut.txt  first.sh  grepUsage.txt  regex.txt  search.txt  second.sh  third.sh  variables.txt
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ -f regex.txt ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ -f /home/myubuntu/Desktop/shellScripts/ ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
1

Check whether a path/file exist or not

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ ls
case1.sh  case.sh  cmdArg.sh  cut.txt  first.sh  grepUsage.txt  regex.txt  search.txt  second.sh  third.sh  variables.txt
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ -e first.sh ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ -e frist.sh ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
1

Check whether a file is readable

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ ls
case1.sh  case.sh  cmdArg.sh  cut.txt  first.sh  grepUsage.txt  regex.txt  search.txt  second.sh  third.sh  variables.txt
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ -r first.sh ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0

Check whether a file is writable

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ -w first.sh ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0

Check whether a file is executable

myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ [[ -x first.sh ]]
myubuntu@myubuntu-VirtualBox:~/Desktop/shellScripts$ echo $?
0
⚠️ **GitHub.com Fallback** ⚠️