dc
bc
電卓とは何が違いますか?
いつ使用しdc
、いつ使用するべきですかbc
?
ベストアンサー1
dc
bc
.citeよりも非常に古いツールです。ウィキペディアページ:
これは、Cプログラミング言語が発明される以前の最も古いUnixユーティリティの1つです。その時代の他のユーティリティと同様に、強力な機能セットを持っていますが、非常に簡潔な構文を持っています。
構文は逆ポーランドの表記法で、デフォルトではパラメータ(数字など)が最初に続き、その後に演算子が続きます。基本的な使用例はdc
次のとおりです。
echo '3 4 * p' | dc
計算p
結果を印刷する必要があります。bc
一方、より親しみやすい中位表記法が使用されるため、使用する方が直感的です。使用例は次のとおりですbc
。
echo '3 * 4' | bc
どちらを使用しますか?
bc
POSIXによって標準化されているので、おそらくどちらの移植性も良いでしょう(少なくとも最新のシステムでは)。手動電卓を使用している場合、これは確かに良い方法です(少しマゾヒストではない限り)。dc
それでもその用途がありますが、この場合は逆ポーランド表記が便利です。合計を求める数値ストリームを出力するプログラムがあるとします。たとえば、次のようになります。
23
7
90
74
29
次のようにストリームにaを追加するだけで済みますので、これを行うのは非常に簡単ですdc
(最小の現代の実装では、各演算子は2つ以上の数を受け入れることができます)。+p
{ gen_nums; echo +p } | dc
しかし、bc
もっと複雑です。私たちはただ+
〜サイ各番号を確認し、すべてが同じ行にあることを確認し、最後に改行文字があることを確認してください。
{ gen_nums | sed '$ !s/$/+/' | tr -d '\n'; echo; } | bc