講完了迴圈,也講過了怎麼連接字串,那麼我們把 Shell 當計算機,計算一些數字呢?
與法也不難:
echo $(( 10 + 10 ))
或
echo $[ 10 + 10 ]
或
expr 10 + 10
當然這個也可以跟前面宣告變數的方式結合:
NUM1=10
NUM2=20
echo $(( $NUM1 + $NUM2 ))
然後整理一下常用的運算符號:
+
:加法-
:減法*
:乘法**
:指數運算/
:除法(無條件捨去小數)%
:取餘數 (MOD 運算)除了做到算完再丟回去:
RESAULT=$(( 10 + 10 ))
Shell 也有各種語言中常見的 +=
運算,不過前面得加個 let
:
NUM=10
echo $NUM
let NUM+=10
echo $NUM
let NUM-=10
echo $NUM
let NUM/=10
echo $NUM
let NUM%=10
另外如果你在 Bash 底下, Bash 不承認小數也無法處理小數,如果在 Bash 執行下面的指令, Bash 會直接報錯:
echo $(( 20.0 / 10 ))
但是如果你在 Zsh 下上面的指令, Zsh 則會把這個當作浮點數做運算,不過效果並不理想,執行下面的指令:
echo $(( 26.0 / 10 ))
會出現這樣的結果:
2.6000000000000001
所以各方面來講,即使你用 Zsh ,依然不建議在 Shell 中處理小數,想辦法弄成整數作業吧。
我是誰?
我是 dd-han ,可以叫我呆翰,是國立臺中科技大學的延畢生 與 創科資訊的時習生。