こんにちは、さるまりんです。
macで作業をしていて、計算したい!って時に、計算機アプリを起動するのがめんどう、横に電卓置いておくのもなんだかなあって思いまして。
コマンドラインで計算してみました。
expr
まずはexpr
コマンドです。
シンプルな数式はそのまま受け付けてくれます。
足し算と引き算です。
$ expr 12 + 34
46
$ expr 23 - 9
14
掛け算は注意が必要です。
$ expr 15 * 2 + 3
expr: syntax error
エラーになりました。
$ expr 15 \* 2 + 3
33
\*
で「×」です。
割り算です。
$ expr 24 / 3
8
剰余演算子であまりも計算できます。
$ expr 30 % 7
2
でも、expr
は整数のみなんです。小数点以下を含む数値の計算をするときはどうしましょう?
bc
bc
コマンドなら小数点以下を含む数の計算もできます。
$ echo "16.7 + 48.1" | bc
64.8
こんな渡し方もできます。
$ bc <<< "16.7 + 48.1"
64.8
平方根なんかも計算できます。
√2です。
$ echo "sqrt(2)" | bc
1
あれ、整数で答えが出てしまいました。
-l
オプションを使うと
$ echo "sqrt(2)" | bc -l
1.41421356237309504880
小数点第20位まで表示されています。
scale
で桁数を設定して
$ echo "scale=3;sqrt(2)" | bc -l
1.414
小数点第3位までの表示になりました。
他にもいろんなことができそうです。マニュアルはこちらです。
その先頭に
an arbitrary precision calculator language
(任意制度の計算言語)
とあるので、計算機の言語なんですね。
bash
bashでそのまま計算することもできます。
$ ((e=11))
$ ((e=e*3))
$ echo $e
33
++
や--
も使えます。
$ ((e++))
$ echo $e
34
プログラミング言語実行環境
PHPがインストールされていれば、-r
オプションを付けると、コマンドラインからちょっとしたPHPを書いて実行することができます。それを使って数式の結果を表示してみます。
$ php -r "echo 16.7 + 48.1;"
64.8
√256です。
$ php -r "echo sqrt(256);"
16
perlなど他の言語でもコマンドラインからの実行が許可されていれば
perlだと-e
オプションです。
$ perl -e "print 16.7 + 48.1"
64.8
macでなくても、Linuxや他のUnix環境でもコマンドがあればできると思います。
簡単な暗算ができないのもちょっとですが、コンピューター=計算機を触っているのだから、それに任せたいって思ってもいいですよね。
単純な足し算をよくするのでexpr
を使う頻度をキープしそうです。(暗算は?)
読んでくださってありがとうございました。
それではまた!