連載
» 2017年06月23日 05時00分 公開

Linux基本コマンドTips(121):【 bc 】コマンド――対話的に計算する、小数点以下の桁数を指定して計算する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、対話的に計算を行う「bc」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、対話的に計算を行う「bc」コマンドです。

bcコマンドとは?

 「bc」は計算を処理するコマンドです。数字や記号を手入力していく対話処理の他に、演算式を書いたファイルを読み込み実行できます。

 四則演算はもちろん、比較や論理演算も実行できる上に、C言語ライクな制御構文を使用したプログラミングも可能です(本連載ではコマンドラインで計算を行う方法について扱います)。



bcコマンドの書式

bc [オプション] [ファイル]

$ echo 計算式 | bc

※[ ]は省略可能な引数を示しています





bcの主なオプション

短いオプション 長いオプション 意味
-i --interactive 対話モードで起動する
-l --mathlib 標準数学ライブラリを読み込んで起動する
-w --warn POSIX bcに対する拡張機能が入力された場合に警告を出す
-s --standard POSIX bcの言語仕様に厳密に従って処理を行う
-q --quiet 起動時のメッセージを表示しない

※Ubuntuなどに採用されているbcは、POSIX規格を拡張している。-lオプションを使うと、三角関数や指数対数を利用できる。例えばタンジェントの逆関数を用いて、円周率πの値を計算できる。式の形は、4*a(1)




対話処理で計算を行う

 bcを起動すると著作権表示などの後、カーソルが現れます。ここで計算式を入力してEnterキーを押すと結果を表示します(画面1)。

 計算式では、()や変数を使用することも可能です。

 計算式を入力する際は左右の矢印キーでカーソルを移動させたり、[BackSpace]や[CTRL]+[H]で1文字削除したりできます。上下の矢印キーを使って、bcを起動してから実行した計算式を再度呼び出すことも可能です。計算が終わったら「quit」で終了します(画面2)。

コマンド実行例

bc画面1


画面1 画面1 bcを起動したところ
画面2 画面2 bcコマンド内で計算を続けているところ


割り算で小数点以下の桁数を指定する

 bcは電卓とは異なり、割り算の際、標準では小数点以下を表示しません。小数点以下の桁数は「scale=」で指定します。例えば、小数点以下5桁まで計算したい場合は、「scale=5」と入力してから計算を実行します。

 いったん設定したscaleの値は、bcを終了するまで有効です。

※この場合、計算途中でも小数点以下を切り捨ててしまう。例えば、「1/2*2」や「1/3*3」の結果は1ではなく、0になる


画面3 画面3 割り算で小数点以下の桁数を指定したところ


コマンドラインで計算する

 bcはファイルや標準入力から計算式を入力して実行できます。「echo "計算式" | bc」のように入力すると、コマンドラインから計算式を入力できます(画面4)。

コマンド実行例

echo 123+45 | bc画面4

echo "scale=5;100/3" | bc


画面4 画面4 コマンドライン上で計算式を入力してbcコマンドを実行したところ scaleの指定も可能


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。