运算方式
expr
a=10
b=1
n=`expr $a + $b`
# 'a' 或 'b' 为变量时需要在变量前加‘$’,如:$a、$b,否则提示:expr: 非整数参数
# 'a'、'+'、'b'之间需要有空格,否则会造成字字符串拼接。例如:expr $a+$b,显示:10+1
# 如果'a'或'b'未初始化,报语法错误
# expr 没有乘幂
let
let n=a+b
# 'a' 或 'b' 为变量时不需要在加‘$’,自动识别变量
# 如果'a'或'b'未初始化,默认初始化为 0
$(())
n=$((a+b))
# 'a' 或 'b' 为变量时不需要在加‘$’,自动识别变量
# 如果'a'或'b'未初始化,默认初始化为 0
$[]
n=$[a+b]
# 'a' 或 'b' 为变量时不需要在加‘$’,自动识别变量
# 如果'a'或'b'未初始化,默认初始化为 0
加1操作
# 在shell script中 +1 的几种操作方式
n=`expr $a + 1`
let n=a+1 或 let n=$a+1
n=$[a+1] 或 n=$[$a+1]
n=$((a+1)) 或 n=$(($a+1))
# 同其他语言中的 ++ 操作
((a++)) #(())重定义变量值
- 以上都是整数运算操作,如果是小数运算使用:bc、awk命令操作。awk比bc复杂,建议使用bc。可以说bc是一个计算器,也可以说bc是个微型编程语言,反正当作工具来用,还是很方便,特别是小数计算。必须借助bc命令。
取模与取余区别
- 官方描述
- 取余运算:在计算商值向0方向舍弃小数位
- 取模运算:在计算商值向负无穷大方向舍弃小数位