您可能希望通過腳本運(yùn)算獲得的結(jié)果是您想要的,那么您需要應(yīng)用到算術(shù)運(yùn)算符參與算術(shù)運(yùn)算以獲得您所需的結(jié)果。
在 Bash 中共支持11種算術(shù)運(yùn)算符。
運(yùn)算符 | 描述 | 運(yùn)算示例 |
---|---|---|
+ |
加法 | $((5+3)) ,打印輸出 8 |
- |
減法 | $((5-3)) ,打印輸出 2 |
* |
乘法 | $((5*3)) ,打印輸出 15 |
/ |
除法 | $((15/3)) ,打印輸出 5 |
** |
求冪 | $((10**3)) ,打印輸出 1000 |
% |
模 | $((10%3)) ,打印輸出 1 |
+= |
常量遞增變量,結(jié)果存儲(chǔ)回變量 | x=5;let"x += 3";echo $x ,打印輸出 8 |
-= |
常量遞減變量,結(jié)果存儲(chǔ)回變量 | x=5;let"x -= 3";echo $x ,打印輸出 2 |
*= |
變量乘以常量,結(jié)果存儲(chǔ)回變量 | x=5;let"x *= 3";echo $x ,打印輸出 15 |
/= |
變量除以常量,結(jié)果存儲(chǔ)回變量 | x=15;let"x /= 3";echo $x ,打印輸出 5 |
%= |
變量除以常量的余數(shù),結(jié)果存儲(chǔ)回變量 | x=10;let"x %= 3";echo $x ,打印輸出 1 |
運(yùn)算符 | 描述 | 運(yùn)算示例 |
---|---|---|
-eq |
檢查兩個(gè)數(shù)字是否相等 | 1 -eq 1 ,返回 true |
-ne |
檢查兩個(gè)數(shù)字是否不相等 | 1 -ne 2 ,返回 true |
-gt |
檢查左邊數(shù)是否大于右邊數(shù) | 2 -gt 1 ,返回 true |
-lt |
檢查左邊數(shù)是否小于右邊數(shù) | 1 -gt 2 ,返回 true |
-ge |
檢查左邊數(shù)是否大于等于右邊數(shù) | 2 -ge 1 ,返回 true |
-le |
檢查左邊數(shù)是否小于等于右邊數(shù) | 1 -le 2 ,返回 true |
運(yùn)算符 | 描述 |
---|---|
&& |
邏輯為AND |
|| |
邏輯為OR |
基本語法:
((expression))
可采用四種大同小異的方法來實(shí)現(xiàn)所需的目標(biāo)運(yùn)算。
1. ```
Num=$((5+3))
echo "Num = $Num
```
2. ```
((Num=5+3))
echo "Num = $Num"
```
3. ```
Num1=5
Num2=3
((Num3=Num1+Num2))
echo "Num3 = $Num3"
```
4. ```
Num1=5
Num2=3
Num3=$((Num1+Num2))
echo "Num3 = $Num3"
```
以上四種方法結(jié)果均相同。
反引號(hào)要與expr
(通用表達(dá)式求值器)執(zhí)行算術(shù)擴(kuò)展。
```expr` ``在算術(shù)運(yùn)算結(jié)束后不會(huì)將結(jié)果保存到變量中,而是直接將結(jié)果打印輸出,如下示例:
```
#!/bin/bash
echo "Num1=5, Num2=3"
echo "Num3 is the value of addition Num3=Num1+Num2"
Num1=5
Num2=3
echo "Num3= expr $Num1 + $Num2
"
執(zhí)行后得到以下結(jié)果:
Num1=5,Num2=3
Num3 is the value of addition Num3=Num1+Num2
Num3= 8
```
let 是 Bash 的內(nèi)置命令,用于執(zhí)行算術(shù)運(yùn)算,算術(shù)運(yùn)算完成后會(huì)將結(jié)果存儲(chǔ)至變量中,語法為:
let <arithmetic expression>
示例:
```
#!/bin/bash
Num1=10 Num2=6 Num3=0 echo "W3Cschool" let "Num3 = $(( Num1 + Num2 ))" echo "Num3= $Num3"
執(zhí)行后得到一下結(jié)果:
W3Cschool
Num3= 16
```
更多建議: