Bash shell 的算術運算有四種方式

來源:互聯網
上載者:User

No.1:使用 expr
eg. r=`expr 4 + 5`
     echo $r
注意: 4 + 5 運算式中運算子和運算元之間要有空格  

#  終於找到原因了,給力啊。

此外,對於乘法運算子 * ,使用expr需要加上\進行轉義 即 r=`expr 4 \* 5`
又及:expr運算式中沒有乘冪**運算

No.2:使用 $(( ))
eg. r=$(( 4 + 5 ))
    echo $r
注意:$( 之間沒有空格, ((、)) 兩對同向括弧之間也沒有空格

No.3:使用 $[ ]
eg. r=$[ 4 + 5 ]
    echo $r
注意:$[ 之間沒有空格

No.4:使用let
eg. let a=4+5
    echo $a
注意:a=4+5 這個運算式同普通的算術運算式一樣,沒有空格

examples:
乘法:
r=`expr 4 \* 5`
echo $r
r=$(( 4 * 5 ))
echo $r
r=$[ 4 * 5 ]
echo $r
let r=4*5
echo $r
4個輸出都為:20

除法:
r=`expr 40 / 5`
echo $r
r=$(( 40 / 5 ))
echo $r
r=$[ 40 / 5 ]
echo $r
let r=40/5
echo $r
4個輸出都為:8

減法:
r=`expr 40 - 5`
echo $r
r=$(( 40 - 5 ))
echo $r
r=$[ 40 - 5 ]
echo $r
let r=40-5
echo $r
4個輸出都為:35

模數:
r=`expr 100 % 43`
echo $r
r=$(( 100 % 43 ))
echo $r
r=$[ 100 % 43 ]
echo $r
let r=100%43
echo $r
4個輸出都為:14

乘冪 (如 2 的 3 次方):
r=$(( 2 ** 3 ))
echo $r
r=$[ 2 ** 3 ]
echo $r
let r=2**3
echo $r
4個輸出都為:8
註:expr 沒有乘冪

雖然Bash shell有好幾種算術運算方法,但並不是每一種方法都可以跨平台的,為使指令碼能跨平台使用,最好使用`expr expression` 或 $(( )),Linux程式設計3rd一書建議使用 $(()) 。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.