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

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

  

 

 

 

 

 

posted @ 2019-09-05 10:41  小菜鸡1枚  阅读(427)  评论(0编辑  收藏  举报