最近在用 bash 寫一支監控的時候用到了很多運算式,用 bash 還真的有點雞肋,但其實只是一個簡單的監控,所以也懶得用其他語言寫了。
首先在 Linux 上要用加減乘除不外乎就是 bc
$ echo "5 + 2" | bc 7 $ echo "5 * 2" | bc 10
但是 bc 的除法就會有小數點
$ echo "43 / 0.6" | bc 25.8
取整數
有時候只是要拿來比大小的話,小數點就很麻煩,所以乾脆取整數 …
awk 的乘除就是直接取整數,用上 int 就可以取整數
$ echo | awk '{print int(43*0.6)}' 25
沒用 int 跟 bc 的結果一樣
$ echo | awk '{print 43*0.6}' 25.8
四捨五入
四捨五入的話就再加上 0.5 使其變成 +1 or -1 的整數就好:
值 25.2 + 0.5,所以取到 25
$ echo | awk '{print int(42*0.6+0.5)}' 25
值 25.8 + 0.5,所以取到 26
$ echo | awk '{print int(43*0.6+0.5)}' 26
簡單記錄下來,下次可能又忘記了 …