shell指令碼算術運算子使用詳解

2021-09-26 02:52:58 字數 1495 閱讀 1283

shell中常用的算術運算子如下所示。

+:對兩個變數做加法。

-:對兩個變數做減法。

*:對兩個變數做乘法。

/:對兩個變數做除法。

**:對兩個變數做冪運算。

%:取模運算,第乙個變數除以第二個變數求餘數。

+=:加等於,在自身基礎上加第二個變數。

-=:減等於,在第乙個變數的基礎上減去第二個變數。

*=:乘等於,在第乙個變數的基礎上乘以第二個變數。

/=:除等於,在第乙個變數的基礎上除以第二個變數。

%=:取模賦值,第乙個變數對第二個變數取模運算,再賦值給第乙個變數。

在shell的算術運算中有以下幾種方法:

名稱    語法    範例

算術擴充套件    變數=$((算術表示式))    r=$((1+2*3))

使用外部程式expr    變數=`expr 算術表示式`    r=`expr 1+2*3`

使用[ ]    變數=$[算術表示式]     r=$[1+2]

使用內建命令declare    declare -i 變數=算術表示式    declare -i r=1+2*3

使用內建命令let    let 算術表示式    let r=1+2

注意事項:

用expr表示後面的表示式為乙個數**算。需要注意的是,`並不是乙個單引號,而是「tab」鍵上面的那個符號,表示式和運算子之間要有空格,例如 2+2 是不對的,必須寫成 2 + 2。

用let表示後面的表示式為乙個數**算。表示式中的變數前不必有$.如果表示式中包含了空格或其他特殊字元,則必須引起來。

例:let 「i = i + 1」 或 let i=i+1

用let表示後面的表示式為乙個數**算。表示式中的變數前不必有$.如果表示式中包含了空格或其他特殊字元,則必須引起來。例:let 「i = i + 1」 或 let i=i+1

數**算例項:

t=`expr$1**$2`                        #用expr改變運算順序,求x的y次方。

t=$[t*3]                               #t乘以3。

s=$[s+t]                               #結果相加。

t=$[$1**2]                             #求x的平方。

t=$[t*4]                               #結果乘以4。

s=$[s+t]                               #結果相加。

t=`expr$2*5`                          #求5y的值。

s=$[s+t]                               #結果相加。

s=$[s+6]                               #結果加上6。

echo$s                                #輸出結果。

shell 算術運算子

下表列出了常用的算術運算子,假定變數 a 為 10,變數 b 為 20 運算子說明舉例 加法 expr a b 結果為 30。減法 expr a b 結果為 10。乘法 expr a b 結果為 200。除法 expr b a 結果為 2。取餘 expr b a 結果為 0。賦值 a b 將把變數 ...

shell 指令碼程式設計之算術運算子

shell 的算術運算子只支援整數,浮點數的運算結果會被轉換成整數。算術運算子包括 冪運算 位左移 位右移 按位與 按位或 按位異或 按位非 使用 let expression 的方式將運算的結果儲存到變數中,如果直接寫var var1 var2這種賦值方式,則得到的結果是字串。ljx localh...

shell 如何使用算術運算子

下表列出了常用的算術運算子,假定變數 one 為 1,變數 two 為 2 運算子說明舉例 加法 expr one two 結果為 3。減法 expr one two 結果為 1。乘法 expr one two 結果為 2。除法 expr two one 結果為 2。取餘 expr two one ...