zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Java第十三天,内部类
    Java第十二天,权限修饰符
    Java面向对象基础
    opencv配置(win10+VS2015+opencv3.1)
    malloc函数
    C++用new创建对象和不用new创建对象的区别解析
    字符串匹配KMP算法中Next[]数组和Nextval[]数组求法
    C++将一个数组内容赋给另一个数组
    C++中的const和指针组合
    通过图片对比带给你不一样的KMP算法体验
  • 原文地址:https://www.cnblogs.com/centlnx/p/12710015.html
Copyright © 2011-2022 走看看