一:shell中對整數和浮點數的運算
常用的運算符號
加法+ 減法 - 乘法* 除法/ 求余%
+= -= *= /= %=
1.整數的運算
(1).使用expr命令(注意:要求操作數和操作數之間用空格隔開,否則只會打印字符串)
expr 1 + 1
expr 2 - 1
expr 2 \* 2
expr 2 / 1
expr 1 % 6
例如執行:#! /bin/bash
num=$(expr 1 + 1)
echo $num
(2).使用$[]和使用$(())命令
echo $[1+1]
echo $[2-1]
echo $[2*2]
echo $[5/2];//舍棄小數
echo $[5%2]
echo $[3**2]
同理:num=1,num1=2;echo $((num+num1)) #這里變量中不需要用$符號
2.浮點數的運算
1.bc:一款高精度計算語言
2.bc支持算數運算,邏輯運算,比較運算
3.支持批處理和以管道方式處理表達式計算
例:
(1).直接在終端輸入bc即可運算
(2).在shell腳本中可使用如下命令:
num=$(echo "scale=2;2.03+2.04"|bc) #scale表示小數位數
echo $num
3.關系運算(使用[],注意[]中變量要加空格)
-eq 檢測兩個數是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。
-ne 檢測兩個數是否相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
-gt 檢測左邊的數是否大於右邊的,如果是,則返回 true。 [ $a -gt $b ] 返回 false。
-lt 檢測左邊的數是否小於右邊的,如果是,則返回 true。 [ $a -lt $b ] 返回 true。
-ge 檢測左邊的數是否大於等於右邊的,如果是,則返回 true。 [ $a -ge $b ] 返回 false。
-le 檢測左邊的數是否小於等於右邊的,如果是,則返回 true。 [ $a -le $b ] 返回 true。
例如:
#!/bin/bash
a=10
b=20
if [ $a -eq $b ]
then
echo "$a -eq $b : a 等於 b"
else
echo "$a -eq $b: a 不等於 b"
fi
if [ $a -ne $b ]
then
echo "$a -ne $b: a 不等於 b"
else
echo "$a -ne $b : a 等於 b"
fi
if [ $a -gt $b ]
then
echo "$a -gt $b: a 大於 b"
else
echo "$a -gt $b: a 不大於 b"
fi
if [ $a -lt $b ]
then
echo "$a -lt $b: a 小於 b"
else
echo "$a -lt $b: a 不小於 b"
fi
if [ $a -ge $b ]
then
echo "$a -ge $b: a 大於或等於 b"
else
echo "$a -ge $b: a 小於 b"
fi
if [ $a -le $b ]
then
echo "$a -le $b: a 小於或等於 b"
else
echo "$a -le $b: a 大於 b"
fi