Shell基本运算符之算术、关系运算符

时间:2022-08-31 18:00:05

Shell 运算符

=============================摘自菜鸟教程=================================

Shell和其他编程语言一样,支持多种运算符包括:

A、算术运算符;

B、关系运算符;

C、布尔运算符;

D、字符串运算符;

E、文件测试运算符;

1、算术运算符

常用算术运算符

运算符号

说明

例子

+

加法

`expr $a + $b`

-

减法

`expr $a - $b`

*

乘法

`expr $a \* $b`

/

除法

`expr $a / $b`

%

取余

`expr $a % $b`

=

赋值

a=$b,将变量b的值赋值给a

==

相等。用于比较两个相等则返回true

[ $a == $b ]

!=

不相等,用于比较两个数字,相等则返回true

[ $a != $b ]

示例:

#!/bin/bash
###本脚本主要用于练习算术运算符;
###写于20190903
###1、两个变量求和
if [ ! $1 - ! $2 ]
then
echo "*******本脚本主要用于两个变量的算术运算;"
echo "*******本脚本运行格式为:sh suanshu_learn.sh 变量1 变量2"
break
else
res=`expr $1 + $2`
echo "变量a加b等于:$res" ###2、两个变量求差;
res=`expr $1 - $2`
echo "变量a减b等于:$res" ###3、两个变量相乘;
res=`expr $1 \* $2`
echo "变量a乘以变量b等于:$res" ###4、两个变量相除;
res=`expr $1 / $2`
echo "变量a除以变量b等于:$res" ###5、两个变量取余;
res=`expr $1 % %b`
echo "变量a除以b取余等于:$res" ###6、判断两个变量相等;
if [ $a == $b ]
then
echo "变量a等于变量b"
fi ###7、判断两个变量不相等;
if [ $a != $b ]
then
echo "变量a不等于变量b"
fi
fi

  

2、关系运算符

关系运算符只支持数字,不支持字符串,除非字符串为数字。

常用的关系运算符

运算符

说明

例子

-eq

检测两个数是否相等,相等返回true

[ $a -eq $b ]

-ne

检测两个数是否不相等,不相等返回true

[ $a -ne $b ]

-gt

检测左边数是否大于右边的,如果是,返回true

[ $a -gt $b ]

-lt

检测左边数是否小于右边的,如果是,返回true

[ $a -lt $b ]

-ge

检测左边数是否大于等于右边的,如果是,返回true

[ $a -ge $b ]

-le

检测左边数是否小于等于右边的,如果是,返回true

[ $a -le $b ]

示例:relation_test.sh

#!/bin/bash
###本脚本主要用于关系运算符
###本脚本写于20190904 ###1、检测两个数字是否相等
if [ ! $1 ]
then
echo "第一个参数为空"
echo "****************************************************************"
echo "****************************************************************"
echo "**************执行用例的格式为:sh $0 变量1 变量2***************"
echo "****************************************************************"
echo "****************************************************************"
break
else
if [ ! $2 ]
then
echo "第二个参数为空"
echo "****************************************************************"
echo "****************************************************************"
echo "**************执行用例的格式为:sh $0 变量1 变量2***************"
echo "****************************************************************"
echo "****************************************************************"
break
else
if [ $3 ]
then
echo "第三个参数为多余参数"
break
else
if [ $1 -eq $2 ]
then
echo "执行的是第一个判断语句"
echo "参数1等于参数2"
fi ###2、检测两个数字是否不相等
if [ $1 -ne $2 ]
then
echo "执行的是第二个判断语句"
echo "参数1不等于参数2"
fi ###3、检测左边的数是否大于右边的;
if [ $1 -gt $2 ]
then
echo "执行的是第三个判断语句"
echo "参数1大于参数2"
fi ###4、检测左边的数是否小于右边;
if [ $1 -lt $2 ]
then
echo "执行的是第四个判断语句"
echo "参数1小于参数2"
fi ###5、检测左边的数是否大于等于右边的;
if [ $1 -ge $2 ]
then
echo "执行的是第五个判断语句"
echo "参数1大于等于参数2"
fi ###5、检测左边的数小于等于右边的;
if [ $1 -le $2 ]
then
echo "执行的是第六个判断语句"
echo "参数1小于等于参数2"
fi
fi
fi
fi