意外と使えるコマンド「bc」

【連載】

にわか管理者のためのLinux運用入門

【第87回】意外と使えるコマンド「bc」

[2017/08/15 08:00]後藤大地 ブックマーク ブックマーク

サーバ/ストレージ

本連載ではこれまでに便利なコマンドを多数紹介してきた。今回取り上げる「bc」も、そんなコマンドの1つだ。これは、任意精度の数値演算用コマンドで、簡単な計算から関数電卓を使うような計算、関数や制御構文を伴う数値演算を任意精度で実行することができる。

プログラミング言語などでは、数値演算で表現できる範囲が限られていることも多いが、bcコマンドでは任意精度の演算ができる点がポイントだ(ただし、bcコマンドでもさすがに桁が大きくなりすぎると処理落ちする)。

要は、Googleの検索窓でできる数値計算と同じことがbcコマンドでもできると考えてもらえればよいだろう。ちょっとした計算をしたいとき、チャチャッと使えるので便利だ。Linux使用時には、Excelが使えないケースもあったりするので、こうした演算コマンドは知っておいて損はない。

bcコマンドの使い方

bcコマンドは、何も指定しないで実行するとインタラクティブに動作するモードになる。次の例の場合、「1.08 * (2912 + 1102 + 886 + 150)」というのが入力した行で、その次の「5454.00」がbcコマンドから出力された計算結果にあたる。

bcコマンドを使った計算例。最後に「quit」と入力すると終了する

bcコマンドは、計算内容を標準入力から入力したり、ファイルで渡したりすることも可能だ。標準入力を使うと、次のように1行だけで処理を行うことができる。

bcコマンドに対して標準入力からデータを渡した場合の計算例

OpenBSDのbcコマンドの場合、「-e」というオプションがあり(これはFreeBSDでも使われている)、そこで計算内容を指定することもできる。一方、LinuxやmacOSで使われているGNU版のbcコマンドにはそのオプションはないため、標準入力を使うことになる。

bcコマンドには、関数の定義や制御構文の使用といったプログラミング的な機能も用意されているので、もっと複雑な計算をさせることもできる。例えば、次のような感じで関数を定義してから、for文で計算をグルグル回すといったことも可能だ(関数定義とfor文の使い方は、OpenBSDのbcコマンドマニュアルから抜粋)。

bcコマンドを使った複雑な計算例

計算内容がある程度複雑なものであれば、直接入力するよりもファイルにまとめてbcコマンドに渡す使い方のほうがよいだろう。例えば、次のように計算内容をファイルにまとめておく。

計算内容を別途ファイルに書いておく

そして、次のようにbcコマンドの引数にファイルを指定すると、計算が実行される。

引数にファイルを指定したbcコマンドの実行結果

複雑な数値計算には、汎用のプログラミング言語を使うとか、数値演算専用のプログラミング言語を使わなければならないと身構えるかもしれないが、実はbcコマンドでも結構いろいろなことができる。ぜひ試しに使ってみていただきたい。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
2993
2
【連載】にわか管理者のためのLinux運用入門 [87] 意外と使えるコマンド「bc」
本連載ではこれまでに便利なコマンドを多数紹介してきた。今回取り上げる「bc」も、そんなコマンドの1つだ。
https://news.mynavi.jp/itsearch/assets_c/2017/08/Linux86_003-thumb-400xauto-13330.jpg
本連載ではこれまでに便利なコマンドを多数紹介してきた。今回取り上げる「bc」も、そんなコマンドの1つだ。

会員登録(無料)

セキュリティ・キャンプ2017 - 精彩を放つ若き人材の『今』に迫る
ぼくらのディープラーニング戦争
クラウドアンケート
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
人事・経理・総務で役立つ! バックオフィス系ソリューション&解説/事例記事まとめ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

ページの先頭に戻る