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

  • 相关阅读:
    some requirement checks failed
    FTP下载文件时拒绝登陆申请怎么办?
    Linux查看与设定别名
    如何编写shell脚本
    Linux shell是什么
    Linux命令大全之查看登陆用户信息
    Linux命令大全之挂载命令
    论第二次作业之输入输出格式怎么合格(才疏学浅说的不对轻点喷我)
    文件词数统计
    软件工程作业--第一周
  • 原文地址:https://www.cnblogs.com/centlnx/p/12710015.html
Copyright © 2011-2022 走看看