マニュアルページセク ション 1: ユーザーコマンド

印刷ビューの終了

更新: 2014 年 7 月
 
 

bc(1)

名前

bc - 任意精度の演算言語

形式

/usr/bin/bc [-c] [-l] [file]...
/usr/xpg6/bin/bc [-c] [-l] [file]...

説明

bc ユーティリティーは、任意精度の電卓を実装します。指定された任意のファイルから入力を受け取ったあと、標準入力から読み取ります。bc の標準入力と標準出力が端末に接続されている場合、bc の呼び出しは対話型になり、以降のセクションで説明されている動作上の制約を受けます。bc は C に似た言語を処理し、–c オプションが指定されていないかぎりは自動的に呼び出す電卓機能プログラム dc のプリプロセッサです。この場合は、dc の入力が代わりに標準出力に送信されます。

使用法

bc プログラムの構文は次のとおりです。

L

a - z の文字を示します。

E

式を示します。(数学的または論理的な) 値、値を取るオペランド、または値に評価されるオペランドと演算子の組み合わせです。

S

文を示します。

Comments

/**/ で囲まれます。

名前 (オペランド)

単純変数: L
配列要素: L [ E ] (最大 BC_DIM_MAX 次元)。
単語 ibaseobase (BC_BASE_MAX に制限される)、および scale (BC_SCALE_MAX に制限される)。

その他のオペランド

オプションの符号と小数点が付いた任意の長さの数字。二重引用符 (") で囲まれた BC_STRING_MAX 文字未満の文字列。( E )

sqrt ( E )

平方根

length ( E )

10 進数の有効桁数。

scale ( E )

小数点の右側の桁数。

L ( E , ... , E )

演算子

+ − * / % ^

(% は剰余、^ はべき乗)

++ −−

(接頭辞と後置、名前に適用される)

== <= >= != < >

= =+ =− =* =/ =% =^

E
{ S ;. . . ; S }
if ( E ) S
while ( E ) S
for ( E ; E ; E ) S
NULL 文
break
quit

.string

関数定義

define L ( L ,. . . , L ) {
auto L ,. . . , L
S ;. . .  S
return ( E )
}

–l 数学ライブラリ内の関数

s(x)

正弦

c(x)

余弦

e(x)

指数

l(x)

対数

a(x)

逆正接

j(n,x)

ベッセル関数

関数の引数はすべて、値で渡されます。

式である文の値は、主演算子が代入演算子でないかぎり出力されます。文は、セミコロンまたは復帰改行のどちらかで区切ることができます。scale への代入は、dc の方法の算術演算で保持される桁数に影響を与えます。ibase または obase への代入によって、それぞれ入力と出力の基数が設定されます。

同じ文字を配列、関数、および単純変数として同時に使用できます。変数はすべて、プログラムに対してグローバルです。auto 変数は、関数呼び出し中にスタックされます。配列を関数の引数として使用するか、または自動変数として定義する場合は、配列名のあとに空の角括弧を付ける必要があります。

オプション

次のオペランドがサポートされています。

–c

コンパイルのみを実行します。出力は、標準出力に送信される dc コマンドです。

/usr/bin/bc

–l

数学関数を定義し、scale をデフォルトの 0 ではなく 20 に初期化します。

/usr/xpg6/bin/bc

–l

数学関数を定義し、scale をデフォルトの 0 ではなく 20 に初期化します。数学の結果はすべて、スケールが 20 になります。

オペランド

次のオペランドがサポートされています。

file

bc プログラムの文を含むテキストファイルのパス名。すべての file が読み取られたあと、bc は標準入力を読み取ります。

使用例 1 変数の精度の設定

シェルでは、次のようにして、n の最初の 10 桁の近似が変数 x に代入されます。

x=$(printf "%s\n" 'scale = 10; 104348/33215' | bc)
使用例 2 計算関数の定義

指数関数の近似値を計算する関数を定義します。

scale = 20
define e(x){
	auto a, b, c, i, s
	a = 1
	b = 1
	s = 1
	for(i=1; 1==1; i++){
		a = a*x
		b = b*i
		c = a/b
		if(c == 0) return(s)
		s = s+c
	}
}
使用例 3 関数の近似値の出力

最初の 10 個の整数の指数関数の近似値を出力します。

for(i=1; i<=10; i++) e(i)

または

for (i = 1; i <= 10; ++i) {         e(i) }

環境変数

bc の実行に影響を与える次の環境変数についての詳細は、environ(5) を参照してください。LANG、LC_ALL、LC_CTYPE、LC_MESSAGES、および NLSPATH。

終了ステータス

次の終了ステータスが返されます。

0

指定されたファイルはすべて正常に処理されました。

指定なし

エラーが発生した。

ファイル

/usr/lib/lib.b

数学ライブラリ

/usr/include/limits.h

BC_ パラメータを定義

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
確実
標準
standards(5) を参照してください。

関連項目

dc(1), awk(1), attributes(5), environ(5), standards(5)

bc コマンドは、論理演算子 && および | | を認識しません。

for 文には、3 つの式 (E) のすべてが必要です。