加减乘除和取余运算:
(1)使用expr命令,里面的数值也可以用变量代替,不但能计算还会把结果输出
expr 1 + 1
#执行这条命令,会在屏幕中输出2
expr 1 - 1
expr a '*' 2 或者 expr 1 \* 2
#因为对于expr来说 * 在shell中是通配符,得先取消通配符的含义,它才是乘法,''和\都能取消符号的特殊含义
#\是转译符号,只会屏蔽后面一个字符的特殊含义,以空格区分是否是一个字符,比如echo $a1 就会输出a1
#也可以用变量和数字计算,a的值必须是数字
expr 2 / 1
#/这个expr能直接识别是除以
expr 20 % 10
#求20除以10的余数
使用方法:
a=$(expr 1 + 2) #这里不会有显示,只是将结果作为值了
echo $a 就会显示3
(2)使用$[]和$(()) 命令,不会将运算结果输出到屏幕,它俩是一样的
$[1+1] #不会在屏幕中输出,可以结合echo 看出结果,也可以用$()引用计算结果
$[a-a] #也支持变量和变量的计算,变量的值得是数字
$[1*1] #它自己就识别*是乘法
$[1/1]
$[1%1]
___________________________________________________
(3)使用let命令,可以改变变量本身的值,不把结果输出在屏幕
let a=a+1
#让a+1,此时a的值+1了
#如果只是a+1的还可以 let a++
#如果是a+2可以写成let a+=2
let a=a-1
#如果只是a-1就let a--
let a=a*2
#也可以写成let a*=2
let a=a/3
#也可以写成let a/=3
let a=a%2
##也可以写成let a%=2
___________________________________________________
(4)使用bc命令,可以做小数运算,并输出结果
但是bc命令是交互的,必须用 | 传参给bc来实现非交互的计算
echo "1.1+2" | bc
#+ - * / % 如上
echo "scale=3;3/2" | bc
#scale=3; 是定义要算到几位小数,并全都输出