熟练掌握以上运算符能够自如的应对linux日常shell脚本需求。
数值运算符
只能用在数字上,不能用在其它数据类型上
算数运算符
基本
就是常见的数学用到的计算:+、-、*、/、%
需要注意的是 默认情况下,shell不会直接进行算术运算,而是把"算术符号"当做"字符串"与两个变量的值连接在了一起,形成了一个新的字符串,不过有6种可以触发算术运算。
(1) 使用let命令进行算术运算,只支持整数运算。
(2) 使用expr命令进行算术运算,只支持整数运算。
(3) 使用运算语法:$[算术表达式],只支持整数运算。
(4) 使用运算语法:$((算术表达式)),只支持整数运算。
(5) 在初始化变量时,将变量定义为"整数"类型,则可直接进行整数运算。
(6) 使用bc命令进行算术运算,支持整数和小数运算。
(7) 使用awk命令进行算数运算,支持整数和小数运算。
举个例子
# 示例:expr表达式
v1=`expr 2 + 2`
echo "两数之和:$v1" # 两数之和:4
# 示例:$(())
v2=$((2 + 2))
echo "两数之和:$v2" # 两数之和:4
# 示例:let
let v3=1+2
echo "两数之和:$v3" # 两数之和:3
#示例:expr表达式为乘,则需要转义
v4=`expr 2 \* 2`
echo "两数乘积:$v4" # 两数乘积:4
比较
就是比较关系的:> 、>= 、 <、 <=、 ==、 !=
其中> 、>= 、 <、 <=
只能在$(())中
echo $(( 2 <= 5 ) # 输出:1
echo [ 2 < 5 ] # 输出:-bash: 5: No such file or directory
# 上句报错原因:[ ] 将 < 当作输入符
==、!=
可以使用 expr表达式、$(()) 、[ ]
参考:
https://blog.csdn.net/qq_35078688/article/details/128413832
https://blog.csdn.net/u013713832/article/details/133755040
https://blog.csdn.net/oqqHuTu12345678/article/details/129257269