Linuxコマンド辞典 bcコマンド(ユーティリティ管理)

数値計算を行う「bc」コマンドの概要と使い方を記載しています。

RHEL Fedora CentOS Vine Deblan Ubuntu Plamo

参考サイト:Man page of INSTALL

概要・使用方法

書式

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

算術言語を処理するインタプリタです。C言語に似た文法の算術言語をファイルまたは標準入力から入力し実行します。引数でファイル名を指定した場合は、それを読み込んで実行し引数を指定しない場合は標準入力からのコマンドを待つ対話モードになります。

対話モードを終了するにひゃCtrl+dから「quit」を入力します。簡単な計算をさせることもできます。関数を定義してスクリプトを作成することもできます。「/*」と「*/」で囲まれた部分と「#」から始まる行は行末までをコメントとして扱います。ifとelse、whileやforなどの制御文を扱うことができます。

bcで利用できる内部変数

変数説明
scale小数点以下有効桁数(デフォルトは0)
ibase入力記数を指定する(デフォルトで10が指定され10進数を使う)
obase出力記数を指定する(デフォルトで10が指定され10進数を使う)
last直近実行された計算結果

オプション

-i
–interactive
対話モードで起動する
-l
–mathlib
標準数学ライブラリを利用する
-q
–quiet
イントロメッセージを表示しない

標準入力からの計算

$ echo "10+20+30" | bc

実行結果

[rin@localhost ~]$ echo "10+20+30" | bc
60
[rin@localhost ~]$ 

対話モードで小数点以下有効けた数を指定して計算

$ bc -q

実行結果

[rin@localhost ~]$ echo "10+20+30" | bc
60
[rin@localhost ~]$ bc -q
print scale #現在の小数点以下の有効桁数を表示
0           #小数点の表示が0のため、小数点以下は表示されない
1/3         #1/3で計算
0           #小数点は表示されず
scale=3     #小数点の有効桁数を3に変更
1/3
.333        #小数点以下3桁表示
quit
[rin@localhost ~]$ 
[rin@localhost ~]$ echo "10+20+30" | bc
60
[rin@localhost ~]$ 

ファイルにコマンドを書き出し実行する

$ bc -q ファイル名

実行するコマンドが記録されたファイルを準備する

taxrate=0.1

define tax(x) {
    return ( x * ( 1+taxrate ) )
}
print "InputPrice:"; price=read()
print tax(price); print "\n"
quit

実行結果

[rin@localhost ~]$ bc -q taxsum.txt 
InputPrice:1000
1100.0
[rin@localhost ~]$