新聞中心

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


咨詢
建站咨詢
