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
相關文章
相關標籤/搜索