zoukankan      html  css  js  c++  java
  • shell执行数学运算

    整数:

    • expr
    • let
    • (())
    • []

    浮点数:

    • bc

    1、使用expr

    ♦参与运算的成员和运算符之间必须有一个空格:

     

     ♦对于那些容易被shell错解的,在它们传入expr命令之前,需要使用shell的转义字符(反斜线‘’)将其转义。 

     ♦要将一个数学式的运算结果赋给一个变量,需要使用命令替换来获取expr命令的输出: 

    我们写一个简单的shell 脚本如下:

     看看运算结果:没有正确输出运算结果

     我们修改脚本如下:

      再来看运算结果:输出结果10

     2、使用[]

    ♦在bash shell中,在将一个数学运果赋给某个变量时,可以用美元符和方括号($[ operation ])将数学表达式括起来,并且不需要转义符转义。这种方式同样适用于shell脚本。并且运算成员和运算符之前可以没有空格(expr 需要有空格)。

     3、使用(())

     4、使用let

     bash shell数学运算只支持整数运算。要进行任何实际的数学计算,这是一个巨大的限制。

     接下里我们看看怎么解决这个问题。

    有几种解决方案能够客服bash中数学运的整数限制。最常的方是用内建的bash计器,叫作bc

    1. bc的基本用法

    bash计算器实际上是一种编程语言,它在命令行中输入浮点表达式,然后解释并计算表达式,最后返回结果。bash计器能够识别:

    ‰ 数字(整数和点数)

    ‰ 变量(简单变量和数组)

    ‰ 注释(以#或C中的/* */开始的行)

    ‰ 表达式

    ‰ 编程(如if-then)

    ‰ 函数

    可以在shell提示符下通过bc命令访问bash计器:

     

     浮点运算是由内建变量scale控制的。必须将这个值设为你希望在计果中保留的小数位数,否则无法得到预期的结果。

     

     scale变量的默值认是0。在scale被设置前,bash计算器的计算果不包还包含小数。在将其设成4后,bash计器显示的结果包含四位小数。-q命令行可以不显示bash计器 的欢迎信息。 

    除了普通数字,bash计器还能支持变量。 

     bc 在shell脚本中的使用:用$()或者``替换命令赋值给变量,其中options部分一般设置精度scale,和变量赋值,expression部分是计算表达式

    var=$(echo "option1,option2;...; expression" | bc) 

     或者var=`echo "option1;option2;...;expression"|bc`

     

    除此之外还有一种写法:利用内联输入重定向(<<)

    人间至味是清欢
  • 相关阅读:
    MySql 主从
    MySql Docker 主主配置
    【算法刷题】C01-Q01 设计一个有getMin功能的栈
    redis管道技术pipeline二——api
    redis管道技术pipeline一 ——api
    Hbase结构和原理
    吴晓波:预见2021(跨年演讲 —— 02 “云上中国”初露峥嵘)
    吴晓波:预见2021(跨年演讲 —— 08 超级城市大赛鸣枪)
    吴晓波:预见2021(跨年演讲 —— 07 房产投资低空飞行)
    吴晓波:预见2021(跨年演讲 —— 06 购物中心即将消亡)
  • 原文地址:https://www.cnblogs.com/qixifly/p/12030924.html
Copyright © 2011-2022 走看看