2011-09-17 11 views
3

bashでbcを使用してファイルから浮動小数点数の平均を求めようとしています。今浮動小数点数のリストの平均Bash

、私は私が使用して追加します。

let "sum=sum+${NUMBERS[$i]} | bc" 

` 私はしかし、これを行うとき、私は構文エラーを取得します。構文的に、これは何が問題なのですか?

答えて

3

bcは標準入力を想定しています。最初のコマンドには標準出力がないので、bcには入力がありません。これを試してみてください:

sum=`echo $sum+${NUMBERS[$i]} | bc -l` 
+0

なぜこれが機能していないのかはっきりしていなかったので、これは非常に役に立ちました。 bcはechoなどの標準コマンドからの出力が必要ですか?今私は別の問題を抱えています。平均を得るために、私はaverage = 'echo $ sum/$ NUMLEN | bc'と同じように、前に私に示したように、私はそれをエコー(echo $ average | bc)すると小数点以下を切り捨てて、ちょうどintとして表示します – gibsonfirebird12

+0

bcを呼び出すときには-lフラグを使用してください数学ライブラリを有効にします。したがって、average = $(echo $ sum/$ NUMLEN | bc -l)はあなたが望むことをします。 "|" bashの演算子は、コマンドの出力を左に取り出し、右のコマンドに入力として送ります。したがって、echoを使用すると式が標準出力に出力され、その後に "|"それを入力としてbcに送ります。 – entitledX

+0

ありがとうございました! – gibsonfirebird12

関連する問題