1 Star 1 Fork 2

sunnyandgood / BigData

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
数学运算 .md 3.69 KB
一键复制 编辑 原始数据 按行查看 历史
sunnyandgood 提交于 2018-07-10 10:44 . BigBata

数学运算

在 Shell 脚本中,算术运算和其他语言比较相对复杂,可以通过两种方式进行算术运算。

一、expr 命令

  • 可以通过 expr 命令进行算术运算并返回结果,命令格式如下。

      expr 5 + 5 
      expr 5 – 5 
      expr 5 / 5 
      expr 5 \* 5 
    • 控制台显示:

        10 
        0 
        1 
        25 
  • 可以通过反引号将结果保存到变量中,在脚本中就可以引用变量了,如下所示:

    • 例:使用返引号或$()方式

         var1=`expr 5 + 5` 
         var2=`expr 5 - 5` 
         var3=`expr 5 / 5` 
         var4=`expr 5 \* 5` 
         echo "$var1" 
         echo $var2 
         echo ${var3} 
         echo $var4 
      
         v=$(expr 20 + 2) 
         v=$(expr 20 - 2) 
         v=$(expr 20 / 2) 
         v=$(expr 20 \* 2) 
         echo $var1 
         echo $var2 
         echo $var3 
         echo $var4 
    • expr 命令支持的运算符说明:

          操作符                            说明 
        OP1 + OP2                      返回算术运算和 
        OP1 - OP2                      返回算术运算差 
        OP1 \* OP2                     返回算术运算乘积 
        OP1 / OP2                      返回算术运算商 
        OP1 % OP2                      返回算术运算余数 
        OP1 > OP2                      如果 OP1 大于 OP2,返回 1,否则返回 0 
        OP1 >= OP2                     如果 OP1 大于等于 OP2,返回 1,否则返回 0 
        OP1 < OP2                      如果 OP1 小于 OP2,返回 1,否则返回 0 
        OP1 <= OP2                     如果 OP1 小于等于 OP2,返回 1,否则返回 0 
        OP1 != OP2                     如果 OP1 不等于 OP2,返回 1,否则返回 0 
        OP1 = OP2                      如果 OP1 等于 OP2,返回 1,否则返回 0 
        substr string pos length       返回 string 的从 pos 开始 length 长度的字符串 
        index string chars             返回 chars 在 string 中的开始位置,没有返回 0 
        length string                  返回字符串的长度 
    • 注意:大于号和小于号需要转义,如下所示:

        expr 5 \> 5 
        expr 5 \>= 5 
        expr 5 \< 5 
        expr 5 \<= 5 
        expr 5 != 5 
        expr 5 = 5 
    • 几个常用的字符串操作,如下所示:

        expr substr abcdefg 2 3  # bcd 
        expr index abcdefg cd   # 3 
        expr length abcdefg     # 7 
      • 控制台输出:

        bcd 
        3 
        7 

二、使用方括号

  • 另一种方式是采用方括号进行算术运算,如$[算术表达式],通常的方式将结果值赋给一 个变量,使用方式如下。

    • 使用方括号进行算术运算: 例子:

           #!/bin/bash 
      
           var1=$[ 5 + 5 ] 
           var2=$[ 5 - 5 ] 
           var3=$[ 5 * 5 ] 
           var4=$[ 5 / 5 ] 
           var5=$[ 5 % 5 ] 
           var6=$[ 5 + ( 5 * 5 )] 
      
           echo "var1: $var1" 
           echo "var2: $var2" 
           echo "var3: $var3" 
           echo "var4: $var4" 
           echo "var5: $var5" 
           echo "var6: $var6"  
      • 控制台输出:

         var1: 10 
         var2: 0 
         var3: 25 
         var4: 1 
         var5: 0 
         var6: 30 

    注意:Bash Shell 只支持整数运算,不支持小数运算。

Java
1
https://gitee.com/sunnyandgood/BigData.git
git@gitee.com:sunnyandgood/BigData.git
sunnyandgood
BigData
BigData
master

搜索帮助