shell « bukochan.com

Archive for category shell

bashで数字を扱う

今回はシェルスクリプトを組むときの数字の扱いについてメモしてみます。
linuxのシェルはbashがデフォルトのようなのでほかのシェルについては知りません。

  • 数字の計算はexpr
  • たとえば a= `expr 1 + 2`
    +-*/%はほかの言語のように使えますが、%を使ったときに余りが小数を伴うとエラーをはき出してしまいます(/dev/nullに捨ててもいいけど)。そんなときはbcを使います。

  • 複雑な計算をするときはbc
  • たとえば a=`echo “12.3 + 12.3 “|bc`
    expr(ルート)や三角関数も使えます。ただ、シェルスクリプトでif文などの条件分岐にはbcの終了コードが0か1しか返さないので注意が必要(ぼくはここにはまった)

  • 複雑な計算だらけの時はperlとかRuby
  • ・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも RubyやPerlの方が適した仕事には素直にそちらを使いましょう。

○参考リンク
 シェル・スクリプト・リファンレス INDEX:ITpro
 シェルスクリプト総合 その7(2ch unix板同名スレッドのアーカイブ)

No Comments