zoukankan      html  css  js  c++  java
  • shell脚本学习总结06--数学计算

    在bash中可利用let,(())和[]执行基本的操作,高级操作将会使用expr和bc

    运算符:+,—,*,/,**(幂)

    (())

    [root@Director ~]# ((c=2**3-9%2));echo $c 
    7

    [root@Director ~]# c=$((2**3-9%2));echo $c #c放在外面则需要加$
    7
    [root@Director ~]# if ((2>1));then echo ok;fi
    ok

    [root@Director ~]# a=5

    [root@Director ~]# echo $((a>6))         #为假的时,布尔值为0
    0
    [root@Director ~]# echo $((a<6))         #为真的时,布尔值为1
    1

    [root@Director ~]# echo $((a++))
    5
    [root@Director ~]# echo $a
    6

    [root@Director ~]# echo $((++a))
    7
    [root@Director ~]# echo $a
    7


    带变量的运算的写法:

    [root@Director ~]# a=1
    [root@Director ~]# b=2
    [root@Director ~]# c=$(($a+$b));echo $c
    3


    let,等同于(()),但效率低
    # let result=x+y
    自加操作
    # let x++
    自减操作
    # let x--
    简写形式
    # let x+=6     --> let x=x+6
    #let x-=6      --> let x=x-6


    []
    # y=$[ 2 + 1]
    # y=$[ $x + 1]

     


    expr
    [root@wls12c ~]$ expr 3 + 4
    7
    y=$(expr $a + 4)


    bc
     # echo "3.1 + 3.2" | bc
    设置结果小数的位数,scale
     # echo "scale=2;1/3" |bc
    .33


    十进制转换成二进制,obase
    $ echo "obase=2;8" |bc
    1000

    二进制-->十进制
    $ echo "obase=10;ibase=2;1000" |bc
    8

    平方和平方根
    [root@wls12c ~]$ echo "10^10"|bc
    10000000000
    [root@wls12c ~]$ echo "sqrt(100)"|bc
    10

  • 相关阅读:
    PDE_DATA 定义
    每天写日记争创青年艺术家 2014-5-14
    [Servlet3.0新功能]注释替代配置文件
    Flex4+Spring3+Hibernate3+BlazeDS整合笔记
    Flex博客
    hibernate缓存机制详细分析
    计算机的艺术-算法
    算法/数据结构/数学
    线性表 及Java实现 顺序表、链表、栈、队列
    java 图的邻接矩阵
  • 原文地址:https://www.cnblogs.com/zydev/p/5745250.html
Copyright © 2011-2022 走看看