zoukankan      html  css  js  c++  java
  • Linux中通过shell进行数据计算

    在bash shell中可以利用let、(())和[]执行基本呢的算数运算。而在进行高级操作时,可以利用expr和bc两个工具进行计算。

    1、let命令可以直接执行基本的算数计算。当使用let时,变量名之前不许要再添加$。

    let   result=num1+num2

    #!/bin/bash
    a=5
    b=6
    let result=a*b
    echo $result
    let result*=result #注意此行,变量与符号之间不能有空格
    echo "the result is $result"
    结果为

    30

    the result is 900

    2、操作符[]的使用方法和let命令相似。

    result=$[num1+num2 ]注意等号两边不能有空格

    在[]中也可以用$前缀。

    #!/bin/bash
    a=5
    b=6
    result=$[a+b ]
    echo "The result is $result"
    result=$[$a+$a ]
    echo "the result is $result"
    结果为

    The result is 11

    the result is 10

    3、使用(())也可以进行计算,但在使用(())时,变量名前需要加上$.

    result=$((num1 +num2 ))

    #!/bin/sh
    num1=5
    num2=6
    result=$((num1+num2))
    echo "the result is $result"
    
    结果为:

    the result is 11

    4、expr同样可以用于基本的数据操作

    result=`expr4+5`

    result=$(expr$num1+2)

    实例:

    #!/bin/sh
    num1=5
    num2=6
    result=$(expr$num1 + $num2) #注意$num1和$num2与+之间一定要有空格
    echo "the result is $result"
    结果为:

    the result is 11

    以上这些方法只能用与整数的计算,而不支持浮点数的计算。

    bc是一个用于数学运算的高级工具。这是一个精密计算器包含了大量的选项。我们可以借助它执行浮点数运算,并应用一些高级函数。

    echo "4*6.4" |bc

    设定小数精度。参数scale=2将小数位数个数设置为2.

    echo "scale=2;13/8" | bc

    1.62

    用bc进行进制转换。进制转换设置参数obase=进制数。

    #!/bin/bash
    no=100
    echo "obase=2;$no" |bc
    no=111111
    echo "obase=10;ibase=2;$no" |bc
    结果为:

    1100100

    63

    用bc计算平方及平方根

    echo "sqrt(100)" |bc

    10

    echo "10^10" |bc

    10000000000




  • 相关阅读:
    委托返回类型的协变性
    委托参数的逆变性
    单例采用双锁定技术
    Jupyter Notebook 工作空间 / 默认路径 的设置方式
    Runaway argument错误 [Overleaf: 在线Latex] [Type 3问题后续]
    [Android ADB] An auto-input method for Android and Windows
    [Latex] 所有字体embedded: Type3 PDF文档处理 / True Type转换为Type 1
    螺旋矩陣 非数组解法
    2014.9.11 Research Meeting Report
    2014.8.23 Research Meeting Report
  • 原文地址:https://www.cnblogs.com/linuxer/p/2870518.html
Copyright © 2011-2022 走看看