最近在用 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

簡單記錄下來,下次可能又忘記了 …

請按讚:

喜歡 正在載入...

2 Replies to “Linux 用 awk 加減乘除、取整數、四捨五入”

bash 下計算會用 expr…

正在載入...

62a517c88ea8bfc9c5f9ff6720e8b00a?s=32&d=mm&r=gshazi7804表示:

突然沒想到 expr,我再補上 XDD !!

正在載入...

給 Mr. 沙先生一點建議

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐