let、$(())、$[]、expr、bc
let
num=10
let num=$num+6;echo $num
#let命令中等号右边可以没有美元符号
let num=num-6;echo $num
#+=、-=、*=、/= % 自加、自减、自乘、自除 取模
let num+=6;echo $num //
let num%6;echo $num
注意:$(())和$[]可以直接使用在命令中,而let则不行
$(()),$[]
num=10
echo $num
#也可以num=$((num+=6))
num=$((num+6));echo $num
num=$[num-6];echo $num
expr
expr可以对数字进行基本运算,也可以做比较,还可以对字符串进行操作。
首先使用expr进行基本运算,注意乘号(*)需要转义,数字与符号之间必须使用空格隔开
expr 5+1
expr 5 * 1
#注意输出0表示假(错误),输出1表示真(正确),大小于号需要转义,数字与符号之间一样需要用空格隔开
expr 5 \> 1
expr 5 \< 1
#对字符串的处理,可以使用"length [字符串]"来统计字符串长度;也可以使用"substr [偏移量] [长度]"截取指定的字符,偏移量从1开始;
expr length "hello world"
expr substr "hello world" 2 3 #2表示从第2位开始,3表示截取3位字符
bc
bc命令是用来做浮点运算,也就是小数点运算。
#组合命令
num=10
echo "scale=2;$num/3" | bc
#单独命令
bc<<!
1.1+1.1
!
#处理分数
bc<<!
#bc命令里可以另外定义变量
num =10
num*5
50
5/3
#这里之所以为整数,是因为没有设置小数位数
1
#设置小数的位数为2位
scale=2
5/3
1.66
quit
!