Linux - 數值運算
阿新 • • 發佈:2019-01-30
逗號 分隔 當我 運算符 使用 結構 方式 運算 expr
Shell - 數值運算
因為shell腳本是屬於弱語言,沒有變量類型的概念,所以定義變量會默認為字符串。就算看上去是一個數字,當直接進行計算時,就會出錯:
x=1
echo $x+=1
# 輸出1+=1,並不是自己想要的2
所以當我們需要進行數值運算時,我們需要一些特殊的方法,在Linex中提供了好幾種方法。
1. 使用 $[]
x=1
echo $[$x+=1]
2. 使用 expr
expr為Linux中的一個命令,可以用於數值計算,也可以用於字符串操作:
x=1 expr 14 % 9 expr 10 + 10 expr $x + 1 # 使用乘號比較特殊,必須用反斜杠 expx $x \* 3
使用expr
也存在缺陷:進行計算的值只能為整數,得到的結果也會以整數形式返回。
3. 使用 (())
相比於$[]
和expr
,這種方式功能比較強大:
- 支持++,--操作
- 支持多個表達式運算,用逗號分隔
- 雙括號可以進行邏輯運算,四則運算
- 雙括號結構拓展了for,while,if條件測試運算
- 在雙括號結構中,所有變量可以不加入
$
符號前綴
x=1
(( y = x + 1,z = y + 1 ))
echo $z
a=10
b=10
total=$((a*b))
4. 使用 let
var=1 # 這種寫法運算符間不能有空格 let "var+=1" let var+=1 echo $var
Linux - 數值運算