• Shell变量的数值运算


    1 expr

    # 只能做整数运算,运算符前后必须有空格,乘法需要转义。
    [root@shell ~]# expr 10 + 1
    11
    [root@shell ~]# expr 10 - 1
    9
    [root@shell ~]# expr 10 * 3
    30
    [root@shell ~]# expr 10 / 3
    3
    
    # 针对变量
    [root@shell ~]# num1=10
    [root@shell ~]# num2=20
    [root@shell ~]# expr $num1 + $num2
    30
    

    2 (())

    # $(())双括号是运算,单括号是变量 $(date)。只支持整数运算,是效率最高的大运算。
    [root@shell ~]# echo $((10+10))
    20
    [root@shell ~]# echo $((10-10))
    0
    [root@shell ~]# echo $((10*10))
    100
    [root@shell ~]# echo $((10/10))
    1
    [root@shell ~]# echo $((10+10-5))
    15
    [root@shell ~]# echo $((10+10-5*6))
    -10
    
    num1=10
    num2=20
    [root@shell ~]# echo $(($num1*$num2))
    200
    

    3 $[]

    # 做整数运算
    [root@shell ~]# echo $[10+10]
    20
    [root@shell ~]# echo $[10+10*20]
    210
    [root@shell ~]# echo $[10+10*20-1000]
    -790
    [root@shell ~]# echo $[10+10*20/1000]
    10
    

    4 let

    # 整数运算,运算的结果需要用变量接收
    [root@shell ~]# let a=10+10
    [root@shell ~]# echo $a
    20
    [root@shell ~]# let a=10*10
    [root@shell ~]# echo $a    
    100
    [root@shell ~]# let a=10/10
    [root@shell ~]# echo $a    
    1
    [root@shell ~]# let a=$num1+$num2
    [root@shell ~]# echo $a
    30
    
    [root@shell ~]# let i++
    [root@shell ~]# echo $i
    1
    [root@shell ~]# let i++
    [root@shell ~]# echo $i
    2
    [root@shell ~]# let i++
    [root@shell ~]# echo $i
    3
    

    5 bc

    # 整数及小数运算
    # bc运算
    [root@shell ~]# echo 10*10|bc
    100
    [root@shell ~]# echo 10*10.5|bc
    105.0
    [root@shell ~]# echo 10-5.5|bc 
    4.5
    [root@shell ~]# echo 10/5.5|bc
    1
    
    # awk运算
    [root@shell ~]# awk 'BEGIN{print 10+10}'
    20
    [root@shell ~]# awk 'BEGIN{print 10-10}'
    0
    [root@shell ~]# awk 'BEGIN{print 10*10}'
    100
    [root@shell ~]# awk 'BEGIN{print 10/10}'
    1
    [root@shell ~]# awk 'BEGIN{print 10^10}'
    10000000000
    [root@shell ~]# awk 'BEGIN{print 10-4.5}'
    5.5
    [root@shell ~]# awk 'BEGIN{print 10*4.5}'
    45
    [root@shell ~]# awk 'BEGIN{print 10/4.5}'
    2.22222
    

    6 小结

    expr $(()) $[] let:只能做整数运算,$(())大运算效率最高
    bc awk python:支持整数和小数运算
    

    参考博客:https://www.pingface.com/archives/caculate

  • 相关阅读:
    layui table表格可搜索下拉框
    mysql重置密码
    纯js代码生成可搜索选择下拉列表
    ORACLE视图简单创建和使用
    zTree多条件模糊查询
    zTree模糊搜索,显示全部节点和高亮显示
    让我们来写一个v-model吧
    使用nodejs爬取静态网页数据
    vue-cli引用vant使用rem自适应
    前端以BASE64码的形式上传图片
  • 原文地址:https://www.cnblogs.com/centlnx/p/12710015.html
Copyright © 2020-2023  润新知