Shell 算数运算
- 2021-09-21 21:48:29
- admin
- 1545
- 最后编辑:admin 于 2021-09-26 10:23:33
运算符
Shell中,表达式与运算符之间要有空格,所以运算符左右两边都要有空格。
所以,即便某些情况下可以忽略空格,也建议大家在写 Shell 脚本时,保持这种空格的习惯。
算数运算
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 expr、let、$[ ] 。本手册这里推荐大家使用 $[ ],至于 expr 和 let,感兴趣的小伙伴可以查阅相关资料了解一下,建议平时写 Shell 脚本涉及算数运算时,使用 $[ ] 即可。
使用 $[ ] 时,将算数式放在[ ]内即可。与 expr 不同,$[ ] 没有空格和运算符转义的特殊要求,如$[(4+5)*3],但适当的空格是良好的编码习惯。
实例:
#!/bin/bash a=$[ 15 - 7 ] b=$[ (4+5)*3 ] c=$[ 21/3%3 ] echo $a echo $b echo $c $ ./test.sh 8 27 1
bc计算器
bash shell 只支持整数运算,浮点数运算可以通过bc计算器来实现。
通过命令替换和管道,在shell脚本中使用bc处理浮点运算。
variable=$(echo "options; expression" | bc)
options允许你设置变量,如果需要设置多个变量,则用分号;隔开。
expression定义了通过bc执行的数学表达式。
实例:
var1=$(echo "scale=4; 3.44 / 5" | bc) 输出结果:.6880
上面适用与较短的运算,更复杂的运算,可以使用内联重输入重定向。
variable=$(bc << EOF options statements expressions EOF )