web-dev-qa-db-ja.com

bcの結果を変数に渡す方法

スクリプトを書いていますが、bcの結果を変数に渡したいと思います。 2つの変数(var1およびvar2)を宣言し、それらに値を指定しました。私のスクリプトでは、bcの結果をvar3などの別の変数に渡して、他の計算でvar3を操作できるようにします。これまでのところ、私が探しているものではないファイルに結果を書き込むことができ、端末で結果をエコーすることもできましたが、結果を変数に渡したいだけですその変数で作業できます。

echo "scale=2;$var1/var2" | bc
15
shaolin

Bashを使用している場合は、次のようにパイプではなくhere文字列を使用することをお勧めします。

bc <<< "scale=2;$var1/$var2"

これにより、サブシェルが節約されます。

次に、コマンドの出力を保存するには、コマンド置換を使用します。

answer=$(bc <<< "scale=2;$var1/$var2")

編集。

bcよりもさらにクールなものが必要な場合は、ここにdc(逆ポーランド計算機)があります。

answer=$(dc <<< "2k $var1 $var2/p")
23
gniourf_gniourf

コマンド置換 は、コマンドの出力を変数に保存します。

var3=$(echo "scale=2;$var1/$var2" | bc)
8
Gilles