zoukankan      html  css  js  c++  java
  • 通过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
  • 相关阅读:
    1
    iulg
    实验10
    作业5 指针应用
    作业4 函数应用
    实验9 指针
    实验 8 数组2
    实验7
    实验6 数组1
    实验5
  • 原文地址:https://www.cnblogs.com/hupeng1234/p/6736439.html
Copyright © 2011-2022 走看看