shapherd

简介

在写shell脚本的时候会用到很多的数学运算,简单的一个游标+1 -1, 或者更多一点的浮点运算等,shell中数学计算稍麻烦,我想每个人都试过var=1+1 或者var=$xxx+1这类错误。 下面对shell中做数学计算小做总结

示例

 

  • 使用expr整数运算
> var=1
> var=`expr $var + 1`
> echo $var
2

其他的减乘除类似, 要注意乘法中的*号需要做转义\*即可

  • 使用bash内建命令let
> var=2
> let "var=var+1"
> echo $var
3
> let "var=(2+2-1)/2" 
> echo $var
1

 

  • 使用大括号或者小括号
> var=3
> var=$((var+1))
> echo $var
4
> var=$[var+1]
> echo $var
5

 

  • 浮点运算可以用bc或者awk等程序

bc更常用, 对运算来说也更好用一些,可以直接命令行使用:

> bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty\'. 
1+1
2
1+1.1
2.1
1.1212*1.12
1.2557

也可以在标准输入作为输入,bc会把结果输出到标准输出:

> echo "2+1-5*1.111" | bc
-2.555

还可以用here-doc的方式把表达式传给bc

> bc <<< "1+2+3+3.3333" 
9.3333

 

bc在计算上还有很多强大的功能, 具体信息可以看下manpage,比如scale

> echo "scale=1;(1/3)" | bc 
.3
> echo "scale=10;(1/3)" | bc
.3333333333

 

awk也可以做算数计算,也支持浮点计算:

> var=1
> var=`echo "$var 5"|awk \'{printf("%g",$1+$2)}\'` 
> echo $var
6

 

分类:

技术点:

相关文章:

  • 2021-09-27
  • 2021-10-20
  • 2022-12-23
  • 2021-05-27
  • 2021-08-06
  • 2021-11-14
  • 2021-06-10
猜你喜欢
  • 2021-06-23
  • 2021-08-12
  • 2021-10-27
  • 2022-12-23
  • 2021-05-18
相关资源
相似解决方案