目录
概述:
1. (()) 运算符
2. let 命令
3. expr 命令
4. $[] 直接运算
5. bc(计算器,支持浮点数)
6. awk(强大的文本处理工具,也可计算)
概述:
Bash 本身只支持整数运算,但可以结合 bc
和 awk
进行浮点运算。以下是常见的计算方法:
1. (()) 运算符
(())
是 Bash 的整数计算语法,支持算术运算符、逻辑运算符,并且可以直接操作变量。
echo $((2 + 3)) # 输出 5
echo $((10 / 3)) # 输出 3(整数运算,舍弃小数部分)# 变量运算
x=5
y=10
echo $((x + y)) # 输出 15#逻辑运算
x=5
y=10
if (( x < y )); thenecho "x 小于 y"
fi
2. let
命令
let
命令和 (( ))
类似,适用于整数计算,但需要显式声明变量。
let x=5+3
echo $x # 输出 8let x++
echo $x # 输出 9let x+=2
echo $x # 输出 11
3. expr
命令
expr
也是用于整数运算的命令,注意运算符和操作数之间要有空格。
expr 2 + 2 # 输出 4
expr 10 / 2 # 输出 5
expr 5 \* 2 # 输出 10 (乘号 `*` 需要转义)
expr
结合变量:
i=5
i=`expr $i + 6`
echo $i # 输出 11
4. $[]
直接运算
作用:$[]
和 $(( ))
类似,但更旧,一般推荐用 (( ))
。
x=10
y=$[x + 2]
echo $y # 输出 12
5. bc
(计算器,支持浮点数)
Bash 本身不支持浮点运算,但可以借助 bc
进行计算。
交互式计算:键入bc
$ bc
bc 1.06
5 + 3
8
scale=2
10/3
3.33
quit
非交互式结合变量:
scale
在 bc
计算器中用于控制小数点后的精度,即保留多少位小数。默认情况下,bc
只进行整数运算,如果不指定 scale
,除法运算的结果将不会包含小数部分。
x=5
y=2
result=$(echo "scale=3; $x / $y" | bc)
echo $result # 输出 2.500
6. awk
(强大的文本处理工具,也可计算)
awk
也可以进行浮点运算。
echo | awk '{print 10 / 3}' # 输出 3.33333#结合变量
x=10
y=3
echo | awk -v x="$x" -v y="$y" '{print x / y}'