• 通过shell进行数学计算


    对于基本运算,可以使用let, $(())和$[]

    对于高级运算,使用exprbc这两个工具

    [hupeng@hupeng-vm shell]$n1=10
    [hupeng@hupeng-vm shell]$n2=2
    [hupeng@hupeng-vm shell]$let res=n1+n2  #let的使用
    [hupeng@hupeng-vm shell]$echo $res
    12
    [hupeng@hupeng-vm shell]$let res=n1*n2
    [hupeng@hupeng-vm shell]$echo $res
    20
    [hupeng@hupeng-vm shell]$let res+=1  #let 支持+=, -=, *=,/=,%=
    [hupeng@hupeng-vm shell]$echo $res
    21
    [hupeng@hupeng-vm shell]$let res-=12
    [hupeng@hupeng-vm shell]$echo $res
    9
    [hupeng@hupeng-vm shell]$let res/=3
    [hupeng@hupeng-vm shell]$echo $res
    3
    [hupeng@hupeng-vm shell]$let res++   #let支持++,--操作
    [hupeng@hupeng-vm shell]$echo $res
    4
    [hupeng@hupeng-vm shell]$let --res
    [hupeng@hupeng-vm shell]$echo $res
    3
    [hupeng@hupeng-vm shell]$a=10
    [hupeng@hupeng-vm shell]$b=2
    [hupeng@hupeng-vm shell]$res=$[ a * b]  # $[]的使用
    [hupeng@hupeng-vm shell]$echo $res
    20
    [hupeng@hupeng-vm shell]$res=$[ $res / 4 + 3 ]  # []中也可以使用$前缀
    [hupeng@hupeng-vm shell]$echo $res
    8
    [hupeng@hupeng-vm shell]$res=$(( a + b )) # $(()使用 前面要加$
    [hupeng@hupeng-vm shell]$echo $res
    12
    [hupeng@hupeng-vm shell]$res=`expr 10 + 2`  # expr的使用
    [hupeng@hupeng-vm shell]$res=$(expr $a + $b)
    [hupeng@hupeng-vm shell]$res=$(expr $a * $b)
    expr: syntax error
    [hupeng@hupeng-vm shell]$res=$(expr $a * $b)  # 乘号要用*表示

    以上只能进行整数运算,要进行浮点数运算,需要使用bc

    [hupeng@hupeng-vm shell]$echo "2 * 2.3" | bc
    4.6
    [hupeng@hupeng-vm shell]$a=3
    [hupeng@hupeng-vm shell]$echo "$a * 1.5" | bc
    4.5
    [hupeng@hupeng-vm shell]$#其他参数可以置于要执行的具体操作之前,同时以分号作为定界符,通过stdin传给bc
    [hupeng@hupeng-vm shell]$echo "scale=1;2 / 3" | bc #scale用来指定精度(小数点后的位数)
    .6
    [hupeng@hupeng-vm shell]$echo "scale=2;2 / 3" | bc
    .66
    [hupeng@hupeng-vm shell]$echo "scale=3;2 / 3" | bc
    .666
    [hupeng@hupeng-vm shell]$n=100 #10进制
    [hupeng@hupeng-vm shell]$echo "obase=2;$n" | bc   #转换为二进制输出
    1100100
    [hupeng@hupeng-vm shell]$n=1100100
    [hupeng@hupeng-vm shell]$echo "obase=10;ibase=2;$n" | bc  # 将二进制转化为10进制输出
    100
    [hupeng@hupeng-vm shell]$echo "sqrt(100)" | bc  #求平方根
    10
    [hupeng@hupeng-vm shell]$echo "10 ^ 3" | bc   #求幂
    1000
    [hupeng@hupeng-vm shell]$echo "sqrt(-1)" | bc   #不支持复数
    Runtime error (func=(main), adr=4): Square root of a negative number
  • 相关阅读:
    firefox ajax async 弹出窗口提示阻止
    Spring加载resource时classpath*:与classpath:的区别(转)
    超链接的href属性 js调用
    jquery easyui tabs layout 记录
    PostgreSQL 中的递归查询 与oracle 的比较
    将字符串中的中文(英文)字符串转化为阿拉伯数字
    用CSS控制文字的宽度,超过省略号代替(转)
    制作gridview 固定列的2种简单解决方案
    自制树型控件(DataGrid) 支持多种响应
    备忘: select 对象的操作js(转)
  • 原文地址:https://www.cnblogs.com/hupeng1234/p/6736439.html
Copyright © 2020-2023  润新知