シェルスクリプトにおける計算方法

整数計算

シェルにおいて、計算をする場合には、簡単な方法として

@ 計算式

という方法がある。ただしこの方法では整数計算しかできない。
使用できる演算子は

+, -, *, /, ++, --, %, +=, -=, *=, /=, %=

などC言語と大体同じものがある。
また式をまとめる( )も使える。
(注)@、変数、演算子などの間はスペースを入れること。

(例)

# @ x = 3 + 2
# echo $x
5
# @ y = $x * 4
# echo $y
20
# @ z = ( $x + $y ) / 3
8

浮動小数点計算の方法

実数(浮動小数点数)で計算するには、少し工夫が必要になる。
シェルで、実数を含めた計算をさせるためには、bc コマンドを使用する。

set 変数名 = `echo "計算式" | bc -l`

"はダブルクォート、`はバッククォート(コマンド置換)、|パイプである。
例えば3.5 * 2.3を計算して変数xに代入するには

set x = `echo "3.5 * 2.3" | bc -l`

とやれば良い。

(例)

# set y = `echo "( 7.6 + 1.5 ) / 8.1" | bc -l`
# echo $y
1.12345679012345679012
# set val = `echo "s( 7.6 ) + c( 1.5 )" | bc -l`   < - sin( 7.6 ) + cos( 1.5 )
# echo $val
1.03865687369918933598

上の例で、なぜ " ダブルクォートが必要なのかという理由は Cシェルのエスケープ を参照のこと。

参考


Prev | Next
Home | Contents
abe@injapan.net