新聞中心

成都創(chuàng)新互聯(lián)專注于雙鴨山企業(yè)網站建設,成都響應式網站建設公司,商城建設。雙鴨山網站建設公司,為雙鴨山等地區(qū)提供建站服務。全流程按需策劃,專業(yè)設計,全程項目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務
| 算術運算符 | 說明/含義 |
|---|---|
| +、- | 加法(或正號)、減法(或負號) |
| *、/、% | 乘法、除法、取余(取模) |
| ** | 冪運算 |
| ++、-- | 自增和自減,可以放在變量的前面也可以放在變量的后面 |
| !、&&、|| | 邏輯非(取反)、邏輯與(and)、邏輯或(or) |
| <、<=、>、>= | 比較符號(小于、小于等于、大于、大于等于) |
| ==、!=、= | 比較符號(相等、不相等;對于字符串,= 也可以表示相當于) |
| <<、>> | 向左移位、向右移位 |
| ~、|、 &、^ | 按位取反、按位或、按位與、按位異或 |
| =、+=、-=、*=、/=、%= | 賦值運算符,例如 a+=1 相當于 a=a+1,a-=1 相當于 a=a-1 |
但是,Shell 和其它編程語言不同,Shell 不能直接進行算數(shù)運算,必須使用數(shù)學計算命令,這讓初學者感覺很困惑,也讓有經驗的程序員感覺很奇葩。
下面我們先來看一個反面的例子:
[c.biancheng.net]$ echo 2+8
2+8
[c.biancheng.net]$ a=23
[c.biancheng.net]$ b=$a+55
[c.biancheng.net]$ echo $b
23+55
[c.biancheng.net]$ b=90
[c.biancheng.net]$ c=$a+$b
[c.biancheng.net]$ echo $c
23+90
從上面的運算結果可以看出,默認情況下,Shell 不會直接進行算術運算,而是把
+兩邊的數(shù)據(數(shù)值或者變量)當做字符串,把
+當做字符串連接符,最終的結果是把兩個字符串拼接在一起形成一個新的字符串。
這是因為,在 Bash Shell 中,如果不特別指明,每一個變量的值都是字符串,無論你給變量賦值時有沒有使用引號,值都會以字符串的形式存儲。
換句話說,Bash shell 在默認情況下不會區(qū)分變量類型,即使你將整數(shù)和小數(shù)賦值給變量,它們也會被視為字符串,這一點和大部分的編程語言不同。
這一點我們已在《Shell變量》中提到,讀者可以猛擊鏈接回憶。
數(shù)學計算命令
要想讓數(shù)學計算發(fā)揮作用,必須使用數(shù)學計算命令,Shell 中常用的數(shù)學計算命令如下表所示。
| 運算操作符/運算命令 | 說明 |
|---|---|
| (( )) | 用于整數(shù)運算,效率很高,推薦使用。 |
| let | 用于整數(shù)運算,和 (()) 類似。 |
| $[] | 用于整數(shù)運算,不如 (()) 靈活。 |
| expr | 可用于整數(shù)運算,也可以處理字符串。比較麻煩,需要注意各種細節(jié),不推薦使用。 |
| bc | Linux下的一個計算器程序,可以處理整數(shù)和小數(shù)。Shell 本身只支持整數(shù)運算,想計算小數(shù)就得使用 bc 這個外部的計算器。 |
| declare -i | 將變量定義為整數(shù),然后再進行數(shù)學運算時就不會被當做字符串了。功能有限,僅支持最基本的數(shù)學運算(加減乘除和取余),不支持邏輯運算、自增自減等,所以在實際開發(fā)中很少使用。 |
在接下來的章節(jié)中,我們將逐一為大家講解 Shell 中的各種運算符號及運算命令。
文章標題:Shell數(shù)學計算(算術運算,加減乘除運算)
標題鏈接:http://m.fisionsoft.com.cn/article/coseooh.html


咨詢
建站咨詢
