2017-03-23 39 views
0

私は現在、C++の小さなゲームカードプロジェクトのために働いていますが、いくつかの統計が必要です。ここでは勝利前に平均ラウンド数を出したいと思います。私はそれを行うbashを試みるが、私は少しエラーがあり、私はかなりbashに新しいです。ここ bashスクリプトを使用して平均を計算する方法は?

はコードです:

#!/bin/bash 
i="1" 
moyenne="1" 

while [ $i -le 40 ] 
do 
    moyenne = $(($moyenne + ./a.out 2>&1 | tail -1)) 
    ((i++)) 
done 

と私の誤差が

./script.sh: line 7: 1 + ./a.out 2>&1 | tail -1: syntax error: operand expected (error token is "./a.out 2>&1 | tail -1")

+0

あなたは2 a.outを./ $( '使いたい>&1:

私はまさにあなたのa.outリターンを知っているが、簡単なecho 1でそれを代用していない、これは41まで追加されます| tail -1) 'である。 – paddy

+0

私はこの 'avg = $(($ avg + $(./a.out 2>&1 | tail -1)))')で ''私の行を変更します。 .sh:行7:avg:コマンドが見つかりませんでした。 ' –

+0

http://shellcheck.net/開始するには良い場所になります。 (割り当ての中で '='の周囲に空白を入れることはできません。それは他の良い静的なチェックツールでも指摘します)。 –

答えて

1

2つの問題があります:等号の前後にスペース - bashはこの程度に敏感である - と道ます$()で評価せずに2つのオペランドを加算(+)します。

moyenne=$(($moyenne + $(echo 1 2>&1 | tail -1))) 
関連する問題