Snippets: Shell: Arithmetic Operation

 20th August 2020 at 2:19pm

Bash 做算术运算。

Floating Point

Bash 本身无法支持符点数运算,需要结合 bc 做:

# scale 表示精确到几位小数,不是四舍五入,而是直接字符串截断
$ echo "scale=2; 1/8" | bc
.12
$ bc <<< "scale=3; 12.2 * 8"
97.6

bc 对于小于 1 的浮点数,不输出小数点前的 0。可以用 printf 来输出:

$ printf "%.3f\n" "$(echo "scale=3; 1/8" | bc)"
0.125