シェルにおいて、計算をする場合には、簡単な方法として
@ 計算式
という方法がある。ただしこの方法では整数計算しかできない。
使用できる演算子は
+, -, *, /, ++, --, %, +=, -=, *=, /=, %=
など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シェルのエスケープ を参照のこと。