How to compare numbers in bash shell on Linux

In Bash shell scripts, we can do a number comparison. To perform a numeric comparison operation in Bash, you must use the “test” state within an if or loop. In this post, we will show you how to compare numbers in bash.

Operators for bash number comparison

operator what the example does
-eqcompare digits in bash for equality, returns 0 if equalif [ $a -eq $b ] then
-gecomparing numbers in bash if greater or equal. Result returns 0 if greater or equalif [ $a -ge $b ] then
-gtcompares numbers in bash if greater.if [ $a -gt $b ] then
-lecompares numbers in bash if less than or equal.if [ $a -le $b ] then
-ltcompares numbers in bash if less.if [ $a -lt $b ] then
-necompares numbers in bash if not equal or not.if [ $a -ne $b ] then

Examples in detail of number comparison operators in Bash:

1.operator -eq

This operator compares numbers to see if the value is equal or not. If it is equal, then 0 is returned.

[[email protected] ~]# cat test.sh
#!/bin/bash
echo "введите значение переменной"
read a
echo "введите значение переменной"
read b
if [ $a -eq $b ]
then
echo "Возвращаемое значение:: $?"
echo "a и b равны"
else
echo "Возвращаемое значение:: $?"
echo "a и b не равны"
fi
[[email protected] ~]#

Execution:

[[email protected] ~]# sh test.sh
введите значение переменной
2
введите значение переменной
3
Возвращаемое значение:: 1
a и b не равны
[[email protected] ~]# sh test.sh
введите значение переменной
2
введите значение переменной
2
Возвращаемое значение:: 0
a и b равны
[[email protected] ~]#

In the above example, we took the numbers 2 and 3 the first time and the system returned the value 1, however, when we accepted the same values ​​for a and b, the variable returns zero.

2. operator -ge

This operator compares numbers and tests the values ​​for greater than or equal to. If the value is greater than or equal, then it has a return value of 0.

[[email protected] ~]# cat test1.sh
#!/bin/bash
#программа сравнения для -ge
echo "введите значение переменной"
read a
echo "введите значение для переменной b"
read b
if [ $a -ge $b ]
then
echo "возвращаемое значение:: $?"
echo "a больше или равно b"
else
echo "возвращаемое значение:: $?"
echo "a не больше или равно b"
fi
[[email protected] ~]#

3. -gt operator

This number comparison operator will check for a higher number. If the value is greater, then it returns 0.

[[email protected] ~]# cat test2.sh
#!/bin/bash
#программа сравнения для -gt
b=100
echo "введите значение больше 100"
read a
if [ $a -gt $b ]
then
echo "Очень хорошо"
else
echo "Не очень хорошо"
fi

4. operator -le

This number comparison operator will check values ​​for less than or equal to. If it is less than or equal, then the return value is 0.

#программа сравнения для -le
b=5
echo "введите значение меньше или равно 5"
read a
if [ $a -le $b ]
then
echo "все верно"
else
echo "не верно"
fi
[[email protected] ~]#

5. operator -lt

This number comparison operator will check values ​​for less. If the number is less then the return value is 0.

[[email protected] ~]# cat test4.sh
#!/bin/bash
#программа сравнения для -lt
b=0
echo "введите число с минусом"
read a
if [ $a -lt $b ]
then
echo "Правильное число"
else
echo "Ввели не верное число"
fi
[[email protected] ~]#

6. operator -ne

This number comparison operator will check values ​​for not equal. If the numbers are not equal, then the return value is 0.

[[email protected] ~]# cat test5.sh
#!/bin/bash
#программа сравнения для -ne
b=0
echo "введите любое не нулевое значение"
read a
if [ $a -ne $b ]
then
echo "Отлично!!!"
else
echo "вы ввели нулевое значение"
fi
[[email protected] ~]#

Execution:

	
[[email protected] ~]# sh test5.sh
введите любое не нулевое значение
2
Отлично!!!
[[email protected] ~]# sh test5.sh
введите любое не нулевое значение
0
вы ввели нулевое значение

Sidebar