2017-03-23 7 views
0

저는 현재 C++로 된 작은 게임 카드 프로젝트를 위해 일하고 있습니다.하지만 통계가 필요합니다. 승리하기 전에 평균 라운드 수를 만들고 싶습니다. 나는 그것을하기 위해 배쉬를 시도하지만 약간의 오류가있어서 나는 배쉬를하기가 아주 쉽다. 여기 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까지 추가 | 꼬리 -1)'. – paddy

+0

괜찮습니다.이'avg = $ (($ avg + $ (./a.out 2> & 1 | 꼬리 -1)))')로''하지만이 오류가 발생했습니다. ' .sh : 줄 7 : avg : 명령을 찾을 수 없습니다. ' –

+0

http://shellcheck.net/ 시작하는 것이 좋습니다. (할당에서'='주위에 공백을 둘 수 없으며 다른 좋은 정적 검사 도구가 지적합니다). –

답변

1

두 가지 문제가 있습니다 : 등호 주변의 공간 - 배쉬는 이것에 대해 민감하다 - 그리고 그 길을 당신 $()으로 평가하지 않고 두 피연산자를 더합니다 (+).

moyenne=$(($moyenne + $(echo 1 2>&1 | tail -1))) 
관련 문제