今回はシェルスクリプトを組むときの数字の扱いについてメモしてみます。
linuxのシェルはbashがデフォルトのようなのでほかのシェルについては知りません。
- 数字の計算はexpr
- 複雑な計算をするときはbc
- 複雑な計算だらけの時はperlとかRuby
たとえば a= `expr 1 + 2`
+-*/%はほかの言語のように使えますが、%を使ったときに余りが小数を伴うとエラーをはき出してしまいます(/dev/nullに捨ててもいいけど)。そんなときはbcを使います。
たとえば a=`echo “12.3 + 12.3 “|bc`
expr(ルート)や三角関数も使えます。ただ、シェルスクリプトでif文などの条件分岐にはbcの終了コードが0か1しか返さないので注意が必要(ぼくはここにはまった)
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも RubyやPerlの方が適した仕事には素直にそちらを使いましょう。
○参考リンク
シェル・スクリプト・リファンレス INDEX:ITpro
シェルスクリプト総合 その7(2ch unix板同名スレッドのアーカイブ)