iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 12
0

講完了迴圈,也講過了怎麼連接字串,那麼我們把 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 ,可以叫我呆翰,是國立臺中科技大學的延畢生 與 創科資訊的時習生。


上一篇
[鐵人賽第11天] 使用 for 迴圈
下一篇
[鐵人賽第13天] 談談 exit code
系列文
30 天的 ShellScript 教室解決開發者的困擾23
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言