【Linux笔记】数值运算——双小括号、let、expr
1. 双小括号
双小括号可以进行整型运算,要取出结果需要在前面加$符号
echo $((2*3)) # 6
echo $((2**3)) # 8——2的3次方
echo $((7%4)) # 3,取余
给变量赋值
((i=23+1))
echo $i # 24
((i=i+1)) # 自增也可以写作((i++))、((i+=1))
echo $i # 25
((i=i*4))
echo $i # 100
i=$((23+1))
echo $i # 24
i=$((i+5))
echo $i # 29
也可以进行逻辑运算,真1假0,同样要用$取结果
echo $((100>1)) # 1
echo $((100>1 && 7>-9)) # 1
echo $((1>2 || 3 < 0)) # 0
2. let命令
作用和双小括号基本相同,但效率会低一些
let x=4+6 # x=10
let x++ # x=11
let x*=x # x=121
let x=x-21 # x=100
3. expr命令
expr后面输入的数字和符号之间都要有空格,也支持大于小于等判断,但像> < * 之类的符号,都需要加个反斜杆进行转义
expr 1 + 2 # 3
expr 1 - 2 # -1
expr 1 \* 2 # 2
expr 1 / 2 # 0
expr 6 % 4 # 2
# expr 2 \*\* 3 #错误, expr似乎不支持乘方运算
expr 5 \> 2 # 1
expr 5 \< 2 # 0
expr 5 \>= 2 # 1
expr 5 \<= 2 # 0
expr 5 != 2 # 1
expr 5 = 2 # 0,这个是判断是否相等
同样也可以进行变量的运算
x=$(expr 2 + 4) # x=6
expr $x + 2 # 8
评论