2012年7月4日水曜日

[Linux/shell]bashで算術計算

shellの変数は値を文字列として格納します。
ふむ。

そういえばあまり計算ってしたことないなぁ。
疑問と必要にせまられて調べてみました
shellの算術計算方法。

方法は3種類。
  • exprコマンド
  • letコマンド
  • bcコマンド

違い
 let は内部コマンド。こっちのが早くて変数を$なしで演算してくれる。
 exprは単純な四則演算を行える 
bcは少数や三角関数など複雑な計算まで行える

letの情報がいまいち少ないけど
letとexprではletのほうが軽いんだって。


・Hatena Diary 僕の外部記憶 | letコマンドとexprコマンドの比較
http://d.hatena.ne.jp/JOlantern/20111202/1322821849

exprを使った場合


for i in {1..10}
do
    i=`expr ${i} + 1`
    echo ${i};
done

letを使った場合
for i in {1..10}do    let i=i+1    echo " ${i}"done

1-10の合計を出してみる 
num2=0
for i in {1..10}do    echo "befor $num2"    let i=num2+i    echo "after $num2"done


bcを使った場合


for i in {1..10};
do
     echo "$i+1" | bc;      done

   平方根ぐらいだしてみる
echo "scale=3;sqrt(16)" |bc

いろんな書き方ができるのね。
shellやっぱり面白い!

(参考)
・ITプロLinuxコマンド集
expr
bc

ありがとうございました^^




0 件のコメント:

コメントを投稿