shell 算術計算 $(( ))

來源:互聯網
上載者:User

摘自 shell 13問

 

好了,最後為大家介紹  $(( )) 的用途吧:它是用來作整數運算 的。
在 bash 中,$(( )) 的整數運算子號大致有這些:
+ - * / :分別為 "加、減、乘、除"。
% :餘數運算
& | ^ !:分別為 "AND、OR、XOR、NOT" 運算。

 

~ # a=1
~ # b=2
~ # echo $((a+b))
3
~ # echo $(($a+$b))
3

 

 

~ # echo $((a-b))
-1
~ # echo $((a/b))
0
~ # echo $((a*b))
2

~ # echo $((a%b))
1

 

 

~ # a=1
~ # b=3
~ # echo $((a&b))
1
~ # echo $((a|b))
3
~ # echo $((a^b))
2
~ # echo $((!b))
0
~ # echo $((!a))
0

 

例:
[code]$ a=5; b=7; c=2
$ echo $(( a+b*c ))
19
$ echo $(( (a+b)/c ))
6
$ echo $(( (a*b)%c))
1[/code]
在 $(( )) 中的變數名稱,可於其前面加 $ 符號來替換,也可以不用(busybox中也可以支援),如:
$(( $a + $b * $c)) 也可得到 19 的結果

 

此外,$(( )) 還可作不同進位(如二進位、八進位、十六進位)作運算呢,只是,輸出結果皆為十進位而已(busybox不支援):
echo $((16#2a)) 結果為 42 (16進位轉十進位)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.