zoukankan      html  css  js  c++  java
  • shell脚本编程-计算方式

    Shell的几种计算方式

    shell中只支持整数计算,也就是所有可能产生小数的运算都会舍去小数部分

    支持常规算术运算符(+,-,*,/,%,**(幂运算))和复合算术运算符(+=,-=,*=,/=,%=)以及位运算(<<,>>,&,|,^,~)和自增自减(++,--)【操作对象只能是变量,不能是常数或表达式】

    1. let 计算方式

    # let "value=4<<2"
    # echo $value
    16

    2.$[]和$(())类似,用于简单的算术运算

    # echo $[1+1]
    2
    # echo $[2-1]
    1

    3.expr计算方式 (特殊符号需要用转义字符,操作数和操作数之间需要有空格,否则就只会打印出字符串)

    # expr 1+1
    1+1
    # expr 1 + 1
    2
    # expr 2 * 2
    4
    
    # rsult=$(expr 2 * 2)
    # echo $rsult
    4

    4.内建运算命令declare (-i 指定变量为整型)

    # I=1+1
    # echo $I
    1+1
    # declare -i J
    # J=1+1
    # echo $J
    2

    5.算术扩展

    为shell内置整数变量的运算机制,是shell内建命令之一

    语法:$((算术表达式))

    # i=2
    # echo $((2*i+1))
    5# echo $((2*(i+1)))
    6# var=$((2*i+2))
    # echo $var
    6

    6.使用bc做运算 (bc:一款高精度计算语言

    # bc
    bc 1.06.95
    Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty'. 
    a=9
    b=5
    a+b
    14
    a-b
    4
    a*b
    45
    a/b
    1
    #设置显示的小数位数
    scale=3
    a/b
    1.800
    #比较运算,真为1,假为0
    2>1
    1
    2<1
    0
    1==1
    1
    #逻辑运算,真为1,假为0
    1&&2
    1
    1&&0
    0
    1||0
    1
    1||2
    1
    !0
    1

      动态地给变量赋值:

    # NUM01=10
    # NUM02=15
    # TOTAL=$(echo "$NUM01+$NUM02" | bc)
    # echo $TOTAL
    25

      关于bc的更多用法可以参考man文件,比如它和常规编程语言一样的支持顺序执行、判断、循环等运行机制,还支持自定义函数等等,有兴趣的可以深入了解。

  • 相关阅读:
    filter
    列表生成式
    迭代
    切片:练习
    Python FAQ
    活在深圳
    “30岁年薪20万算不算很失败?”人民日报这样回答
    ASP.NET Core 运行原理解剖[1]:Hosting
    Kotlin 初窥门径[2]:流程控制
    Kotlin 初窥门径[1]:基础概念
  • 原文地址:https://www.cnblogs.com/xccnblogs/p/4828948.html
Copyright © 2011-2022 走看看