Unixコマンド/bc

bc

機能

exprでは,整数の四則演算や数値判別といった簡単な処理しか行えない。
小数点を利用するなどより複雑な処理を行いたい場合は,bcを利用する。
bcはexprとは違い,ファイルやパイプなどで引き渡された値を処理する。

構文

bc [オプション] [コマンド]

意味
scale=桁小数点以下の桁を指定する。初期値は0
length=桁有効桁数を指定する
length ( 数値 )指定した数値の有効桁数を返す
scale ( 数値 )指定した数値の小数点以下の桁数を返す
ibase=基数入力の基数を指定する。初期値は10
obase=基数出力の基数を指定する。初期値は10
last最後にbcが出力した値
( 式 )括弧内の式を先に計算する
変数 ++指定した変数に1を足す
変数 --指定した変数から1を引く
数値1 + 数値2数値1と数値2を足し合わせる
数値1 - 数値2数値1から数値2を引く
数値1 * 数値2数値1と数値2を掛け合わせる
数値1 / 数値2数値1から数値2を割る
数値1 % 数値2数値1から数値2を割った余り
数値1 ^ 数値2数値1の数値2乗
s ( 数値 )sin (数値はラジアン)
c ( 数値 )cos (数値はラジアン)
a ( 数値 )atan (結果の単位はラジアン)
l ( 数値 )log
e ( 数値 )exp
sqrt ( 数値 )指定した数値の平方根を返す
数値1 == 数値2数値1と数値2が等しいなら「1」を返す
数値1 != 数値2数値1と数値2が等しくないなら「1」を返す
数値1 < 数値2数値1が数値2より小さいなら「1」を返す
数値1 <= 数値2数値1が数値2より小さいまたは等しいなら「1」を返す
数値1 > 数値2数値1が数値2より大きいなら「1」を返す
数値1 >= 数値2数値1が数値2より大きいまたは等しいなら「1」を返す
!式式の論理的に反対を返す
式1 && 式2式1と式2が共に真ならば「1」を返す
式1 || 式2式1と式2のいずれかが真ならば「1」を返す
return ( 戻り値 )関数から戻る
quitbcを終了する
if (条件式)分岐を行う
while (条件式)繰り返しを行う
for (初期処理;条件;繰り返しごとの処理)指定した回数繰り返す

コマンド例

$ echo "1+1" | bc 
2

$ echo "scale=5; 1/3" | bc 
.33333
  • クウォータのパーセントを出す例
    NOW=`quota -v | grep home | awk '{print $2}'`
    QUOTA=`quota -v | grep home | awk '{print $3}'`
    
    PAR=`echo "scale=3; $NOW / $QUOTA * 100"|bc`