Shell 算数运算

2021-09-21 21:48:29
admin
1256
最后编辑: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
)