簡単なcalculatorコマンドを作ってみる(Ruby)
たまーにさくっと計算機欲しいときがあるけど、UNIX標準のbcってクセがありすぎて辛い。
探してもシンプルなcalculatorコマンドってないもんだなと、、、。 やりたいことは、単純で
$ calc 1024*24-54 24522 0x5fca 057712
結果を、10進、16進、8進て表示してくれる。 (プログラマー用ね)
引数に0x24
とか0123
とかも受け付けてくれる。
$ calc 12*0x24/0123 5 0x5 05
とかね。
よく考えたら、シンプルなのでRubyのeval使えばできるや。と。
ソース(calc):
#!/usr/bin/ruby ARGV.length > 0 || exit eval("$res = #{ARGV[0]}") $res_hex = "%x" % $res $res_oct = "%o" % $res puts "#{$res}\t0x#{$res_hex}\t0#{$res_oct}"
実際には、引数はクオテーション'
で囲む必要がある。
(shが*とか展開しちゃうので)
まあ、sedもawkも'
で囲ってるしね。
$ calc '1024*24-54' 24522 0x5fca 057712
単にRubyに計算させてるだけなので、やろうと思えば sin(), cos()もできるが、まあ多分使わない。