Linux中的数学计算

第一次使用Shell中的数学运算的时候,相对于C/C++中的直接使用来说,十分的麻烦,并且不是很好记忆

expr方法

expr方法可以直接在命令行使用,当遇到在Shell中有其他含义的操作符的时候,需要使用'\'转义符,并且严格要求操作符两边必须有空格 如:

注意:运算法两边一定要有空格

$ expr 1 + 5
6
$ expr 5 \* 5
25

如果expr方法使用在脚本中时:

val=$(expr 1 + 1)

需要注意的是:expr不支持浮点数运算,所以运算的数字中不能出现浮点数,否则会出现下面的错误

方括号方法

如果使用数学运算,可以使用方括号将数学表达式围起来$[ operation ]或者$(( operator ))

同样方括号同样支持在命令行中直接运行,如:

Linux中的数学计算_第1张图片

在脚本中使用方法:

val=$[1 + 1]

与expr相同,方法不支持浮点数运算,使用将会出现以下错误:

与expr方法不同:方括号中运算符两两边不需要添加空格        shell中存在的运算符不需要使用转义符

bc方法  

如果版本中没有bc,则使用yum install bc安装bc

最重要的不同是:bc支持浮点型运算,浮点运算是由内建的scale控制的,默认scale变量为0,所以默认计算结果不包含小数,我们可以手工指定小数点的个数即可

在命令行中使用:

Linux中的数学计算_第2张图片

或者使用管道符: 

 

脚本中使用,我们需要使用管道符,将要运算的数值作为bc的参数

val=$(echo "scale=4:3.14/2|bc")

总合

Linux中的数学计算_第3张图片

参考书籍

《Linus命令行与Shell脚本编程大全》

你可能感兴趣的:(LINUX)