码迷,mamicode.com
首页 > 系统相关 > 详细

Li ux shell 四则运算

时间:2015-11-13 06:41:02      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:四则运算

一、整数的四则运算

    (1)使用let 表达式, 变量前不需要加‘$‘

        let sum=num1+num2

    (2)$[表达式], 变量前既可以加$, 也可以不加$

        sum=$[num1 + num2]
        sum2=$[$num1 - 5]
        sum3=$[num1 + 3]

    (3)$((表达式)), 变量前既可以加$, 也可以不加$

        result=$(($num1 + num2 - 5))

    (4)expr, 使用‘`’字符将表达式阔起来,或则使用$(expr 表达式), 操作数和操作符必须用空格分割

        result=`expr $num \* 4` #乘法 * 需要转义
        result2=$(expr $num / 3)


二、浮点数的四则运算

        bc是一个数学运算的高级工具,使用分号作为定界符,通过stdin传递给bc。

        (1)设置小数精度

            通过设置scale的值,指定结果的小数位数

       $  echo "scale=2;4/3" | bc
       $  1.33

        (2)进制转换

                通过设置obase的值,将输入数字转换为obase设置的值的进制数

        $ echo "obase=2;3" | bc #转换为二进制   
        $ 11                
        $ echo "obase=8;3" | bc #转换为八进制                
        $ 3                
        $ echo "obase=8;9" | bc #转换为八进制                
        $ 11    
        $ echo "obase=16;10" | bc #转换为十六进制                
        $ A

   

        (3)一些高级应用

        $ echo "sqrt(16)"   | bc
        $ 4
        $ echo "10 ^ 2" | bc     
        $ 100

三、例子

    #!/bin/bash    
    
    num1=3
    num2=5
    
    #使用let时,变量前不需要加 $ 
    let sum=num1+num2
    echo "$num1 + $num2 = $sum"
    
    let num1++  #自增
    let num2--  #自减
    echo "num1=$num1, num2=$num2"
    
    let num1+=5  #复合运算
    let num2-=2
    echo "num1=$num1, num2=$num2"
    
    
    #使用  $[表达式] 进行计算
    div=$[num1 / num2]
    echo "$num1 / $num2 = $div"
    
    sss=$[num1 + num2]
    echo "$num1 + $num2 = $sss"
    
    num3=$[num1 - 3]
    echo "num3=$num3"
    
    #使用 $((表达式)), 其中表达式中的变量可以用$,也可以不使用$
    num4=$(($num1 + num2 - num3 + 4))
    echo "num4=$num4"
    
    #使用 expr 进行计算, 操作数和操作符必须要空格隔开
    num5=`expr $num1 + $num3`
    echo "num5=$num5"
    num6=`expr $num2+$num4`
    echo "num6=$num6" #由于操作数和操作符没有隔开,变成了一个字符串,并没有计算
    
    result=`expr $num1 \* 4` #乘法 * 需要转义
    echo "result=$result"
    
    result2=$(expr $num2 / 3)
    echo "result2=$result2"
    #以上都只能进行整数的计算,不能对浮点数进行操作

        结果:

            3 + 5 = 8
            num1=4, num2=4
            num1=9, num2=2
            9 / 2 = 4
            9 + 2 = 11
            num3=6
            num4=9
            num5=15
            num6=2+9 #这个即为操作数和操作符没有隔开的结果
            result=36
            result2=0

本文出自 “风雪舞者” 博客,请务必保留此出处http://happytree007.blog.51cto.com/6335296/1712338

Li ux shell 四则运算

标签:四则运算

原文地址:http://happytree007.blog.51cto.com/6335296/1712338

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!