SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【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

関連するメモ

コメント(1)

こsdjふぁs 2013年3月13日 17:19

良い情報ですね