MAGAZINE

ルーターマガジン

データ/フォーマット

Unix/Linuxのbcコマンドを使ってシェル上で対話式に複雑な計算をする

2020.02.12
Pocket

こんにちは。学生アルバイトのohkiです。皆さんはシェルで数値計算をしたことがありますか?シェルでは、他のプログラミング言語と同じように四則演算は簡単に行うことができます。しかし、小数点以下が存在するなど、少し複雑な計算になるとやりにくくなってしまいます。そこで便利なのがbcコマンドです。早速使っていきましょう。

bcコマンドとは

bcコマンドとは、Unixの標準コマンドの一つで、任意の精度の数値を扱い、四則演算や平方根、三角関数などを計算することができるコマンドです。今回はscaleを使って、数値の桁数を指定します。scaleは小数点以下の有効桁数を指定します。

使い方

bcコマンドの使い方としては主に、bcを起動してから対話形式のように実行する場合と、コマンドライン上で標準入力を受け取り計算を実行する場合の2つがあります。

bcを起動して、対話形式で実行する

まずターミナル上で"bc"と入力します。すると、下記ように入力待ちになります。

$ bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 

まずは、計算式を入力してみましょう。

100/3
33
scale=2
100/3
33.33

まず、何もしない状態で"100/3"を入力すると、"33"が返ってきます。しかし、これには小数点以下の値は表示されません。そこで、"scale=2"を入力してから同じことをすると"33.33"が返ってきます。これは、"scale=2"で小数点以下2位まで求めることをしているからです。

コマンドライン上でワンライナーで実行

ここからは、最初に述べたようなコマンドライン上で標準入力として計算式を受け渡し、ワンライナーで実行する形を説明します。実行コマンドは以下のようになります。

$ echo "scale=2; 100/3" | bc
33.33

このように実行コマンドをクォーテーションの中に入れ、パイプでbcコマンドを指示します。すると、最初に紹介したものと同じ結果が得られます。このような形を用いることで、シェルスクリプトを作成する際にも高精度の計算をすることができますね。

まとめ

今回はbcコマンドの簡単な使い方を紹介しました。他にも便利な使い方があるので、ぜひ使ってみてください。

Pocket

CONTACT

お問い合わせ・ご依頼はこちらから