【linux】シェルで計算(exprコマンド)
問題
シェルで簡単な計算をするには? 1+1 とか。
答え
exprコマンドが使える。
実行例
1 + 1 = 2
$ expr 1 + 1 2
演算子はくっつけてはいけない。
$ expr 1+2 1+2
シェルにとって特別な意味がある記号は\でエスケープしなくてはならない。
1日って何秒だったっけ?というときは60*60*24をしたいが、さくっと計算したいときに、少々厄介。
$ expr 60 * 60 expr: syntax error
$ expr 60 \* 60 \* 24 86400
+-/*してみる。exprは整数の計算しかしないので割り算などは結果に注意(余りは切り捨て)。
$ expr 1 + 2 - 3 / 4 \* 5 3
$ expr 360 / 5 72
$ expr 6 + 5 - 4 / 2 \* 1 9
等しいか、大きいか、小さいかの判断もできる。不等号はエスケープのこと。
$ expr 4 / 2 = 6 / 3 1
$ expr 123456 \< 12345 0
$ expr 987 \> 1234 0
変数が使えるので、計算機のメモリー機能的なことは可能。
$ a=`expr 23 \* 45` $ b=2345 $ expr $a + $b 3380
こsdjふぁs 2013年3月13日 17:19
良い情報ですね