1format() {
2 if [ $1 -lt 100 ]; then # round down <.1 kb
3 printf '000K'
4 elif [ $1 -lt $((10**3)) ]; then
5 printf '0%sk' $(echo "scale=1;$1 / 10^3" | bc -l)
6 elif [ $1 -lt 9950 ]; then
7 printf '%sk' $(round `echo "$1 / 10^3" | bc -l` 1)
8 elif [ $1 -lt 99500 ]; then
9 printf '0%sk' $(round `echo $1 / 10^3 | bc -l` 0)
10 elif [ $1 -lt 999500 ]; then
11 printf '%sk' $(round `echo $1 / 10^3 | bc -l` 0)
12 elif [ $1 -lt 1050000 ]; then
13 printf '%sm' $(echo `round $(echo "$1 / 10^7" | bc -l) 1`*10 | bc -l)
14 elif [ $1 -lt 9950000 ]; then
15 printf '%sm' $(round `echo "$1 / 10^6" | bc -l` 1)
16 elif [ $1 -lt 99500000 ]; then
17 printf '0%sm' $(round `echo "$1 / 10^6" | bc -l` 0)
18 elif [ $1 -lt 999500000 ]; then
19 printf '%sm' $(round `echo $1 / 10^6 | bc -l` 0)
20 elif [ $1 -lt 9950000000 ]; then
21 printf '%sg' $(round `echo $1 / 10^9 | bc -l` 1)
22 elif [ $1 -lt 99500000000 ]; then
23 printf '0%sg' $(round `echo $1 / 10^9 | bc -l` 0)
24 elif [ $1 -lt 999500000000 ]; then
25 printf '%sg' $(round `echo $1 / 10^9 | bc -l` 0)
26 else
27 printf 'fast'
28 fi
29}
30
31round() {
32 echo $(printf %.$2f $(echo "scale=$2;(((10^$2)*$1)+0.5)/(10^$2)" | bc))
33}
34
35for x in {1000..10000}; do format $(( $x * 10 )); done
36