bcがない

bashで%計算したい。でも、exprでは整数演算しかできない。
最初に分子を1000倍しておくのもなんだな。
んでもって、この環境にbcはない。
めんどいから、代案を3つ。

  • exprで整数演算になるようにして計算する。
    • 0から13桁くらいまでの可能性があるので、ちょっとめんどくさい。
    • exprを何度も発行することになるので、コスト低くなさそう。
  • bc入れる。
    • でもソースから管理に追加されるのでめんどくさい。
  • python使う。
    • なぜか入っている。たかが計算に実行コストが高そうでちょっとな。やってみた。確かに重い。
    • 同じ理由でPerlも却下か。


bakさめにawkを使えといわれたよ。mawkは入っている。
awkだと、どのみちroundはないので、

# time echo | awk '{print int((538251735040/743052410880)*100+0.5)}'
72
real    0m0.117s
user    0m0.000s
sys     0m0.020s

時間コストはまぁまぁだ。
intは整数部しか返さないので、0.5を加えて四捨五入の代わりにする。
awkは何か渡してやらないと動かない... なんかうまい方法あったっけ?
みっともないコードだ。
というか、なんでもとの情報は素直にdu -mhの値を使わないのだ?
こういう実装は素直じゃないと思ったり。
ひねくれているのはどっちだろうか...