zoukankan      html  css  js  c++  java
  • Linux

    Shell - 数值运算

    因为shell脚本是属于弱语言,没有变量类型的概念,所以定义变量会默认为字符串。就算看上去是一个数字,当直接进行计算时,就会出错:

    x=1
    echo $x+=1
    # 输出1+=1,并不是自己想要的2
    

    所以当我们需要进行数值运算时,我们需要一些特殊的方法,在Linex中提供了好几种方法。

    1. 使用 $[]

    x=1
    echo $[$x+=1]
    

    2. 使用 expr

    expr为Linux中的一个命令,可以用于数值计算,也可以用于字符串操作:

    x=1
    expr 14 % 9
    expr 10 + 10
    expr $x + 1
    # 使用乘号比较特殊,必须用反斜杠
    expx $x * 3
    

    使用expr也存在缺陷:进行计算的值只能为整数,得到的结果也会以整数形式返回。

    3. 使用 (())

    相比于$[]expr,这种方式功能比较强大:

    • 支持++,--操作
    • 支持多个表达式运算,用逗号分隔
    • 双括号可以进行逻辑运算,四则运算
    • 双括号结构拓展了for,while,if条件测试运算
    • 在双括号结构中,所有变量可以不加入$符号前缀
    x=1
    (( y = x + 1,z = y + 1 ))
    echo $z
    a=10
    b=10
    total=$((a*b))
    

    4. 使用 let

    var=1
    # 这种写法运算符间不能有空格 
    let "var+=1" 
    let var+=1 
    echo $var
    
  • 相关阅读:
    WPF自定义控件
    NPOI设置Excel单元格字体、边框、对齐、背景色
    关于StreamReader.ReadToEnd方法
    ASP.NET Core Web多语言项目
    docker与虚拟机的区别
    C# Task.Run 和 Task.Factory.StartNew 区别
    MVC的SignalR例子
    深圳游玩攻略
    一个域名下多个Vue项目
    Linq的执行效率及优化
  • 原文地址:https://www.cnblogs.com/yisany/p/10338964.html
Copyright © 2011-2022 走看看