运算方式
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方向舍弃小数位
- 取模运算:在计算商值向负无穷大方向舍弃小数位
Linux算术运算详解
本文详细介绍了Linux系统中算术运算的多种方式,包括expr、let、$(())、$[]等命令的使用方法及注意事项,对比了它们在变量处理、初始化默认值、运算符要求上的差异,并解释了加1操作的不同写法。此外,还讨论了取模与取余的区别,以及小数运算的处理方法,推荐使用bc命令进行精确的小数计算。
683

被折叠的 条评论
为什么被折叠?



