Unixコマンド/bc の変更点


*&SIZE(15){''bc''}; [#ge212b87]

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

**''構文'' [#c16ee3fb]
bc [オプション] [コマンド]

**''式'' [#o8f03ecc]
|式|意味|h
|CENTER:式|CENTER:意味|h
|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 ( 戻り値 )|関数から戻る |
|quit|bcを終了する |
|if (条件式)|分岐を行う |
|while (条件式)|繰り返しを行う |
|for (初期処理;条件;繰り返しごとの処理)|指定した回数繰り返す |

**''コマンド例'' [#s83a62c9]
 $ 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`