shell 数学运算总结

# !/bin/bash

## 整数-算数运算
### 1. expr
r=`expr 4 + 5`
###  Tips:1. '4''+''5'三者之间有空白
echo $r;
r=`expr 4 \* 5`
echo $r;
###  Tips:2. *有特殊意义,应该用\取消*的特殊意义
### 2. $(())
r=$((4+5))
echo $r
### 3. $[]
r=$[4+5]
echo $r
### 4. let 命令
let r=4+5
echo $r
### 加减乘除
### 乘法
r=`expr 4 \* 5`
echo $r
r=$((4*5))
echo $r
r=$[4*5]
echo $r
let r=4*5
echo $r
n=10
r=`expr $n \* 5`
echo $r;
r=$(($n*5))
echo $r;
r=$[$n*5]
echo $r;
let r=n*5;
echo $r;
### 除法
r=`expr 40 / 5`
echo $r;
r=$((40/5))
echo $r;
r=$[40/5]
echo $r;
let r=40/5
echo $r
### 减法
r=`expr 40 - 5`
echo $r;
r=$((40-5))
echo $r;
r=$[40-5]
echo $r;
let r=40-5
echo $r;
### 模运算
r=$[100%43]
echo $r
r=$((100%43))
echo $r;
r=`expr 100 % 43`
echo $r;
### 幂运算
### expr没有乘幂
r=$((2**3))
echo $r;
r=$[2**3]
echo $r;
let r=2**3
echo $r;

## 浮点数-算数运算
### bash shell本身不具备浮点计算的能力,可以使用bc或者awk来处理
### variable=$(echo "[选项];操作" | bc [选项]) http://www.runoob.com/linux/linux-comm-bc.html
### scale表示输出中小数点后的精度
a=3
b=2
c=$(echo "scale=2; $a/$b" | bc)
echo $c
### ibase和obase表示输入和输出数据的进制
echo "ibase=2;111"|bc
echo "obase=2;192"|bc
### bc 将二进制转换为十进制,ibase必须在后面,否则无效
abc=11000000
echo "obase=10;ibase=2;$abc"|bc
### bc计算平方和平方根
echo "2^10"|bc
echo "sqrt(100)"|bc
### 浮点数比较
if [ $(echo "1.5 > 1"|bc) -eq 1 ]
then
    echo "true"
fi
posted @ 2018-10-09 09:10 戎码之路 阅读(...) 评论(...) 编辑 收藏