摘自 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進製轉十進位制)
Shell中的算術運算
當使用let時,變數名之前不能再新增 用法 var1 2 var2 3 let result var1 var2 echo result 除此之外,我們還可以使用 let 來進行自加自減操作 let var 使用let進行自加 let var 使用let進行自減 簡寫let no 6 let no ...
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指令碼中的算術運算
本文將介紹6種shell指令碼中算術運算的方法,各有優缺點,當然了,最常用的就那兩種,我會特別指出。6種算術運算方法是 let operation expr operation operation operation 用awk 做算術運算 echo operation bc let no1 let ...