2012-03-09 5 views
0

이 KornShell (ksh)을 작동 시키려고하는데 if 문이 작동하지 않는 것처럼 보입니다 (틀 렸습니다). 나는 그것을 실행할 때마다KornShell 스크립트 평균 비교

Total=`echo ${marks[1]}+${marks[2]}+${marks[3]}+${marks[4]}+${marks[5]} | bc` 
    Average=`echo "$Total 5" | awk '{print $1/$2}'` 

    if [ "$Average" -le "11.5" ]; then 
     result="failing" 
    else 
     result="passing" 
    fi 

    print "Total: $Total" 
    print "Result: $Average" 
    print "$result" 

은 평균 및 총 올바르게 계산되지만, 결과에 관계없이 항상 평균 < 11.5 여부의 "실패"입니다.

도움을 주시면 감사하겠습니다.

+0

ksh에 부동 소수점 값을 인식하는'['builtin이 있으면 놀랄 것입니다. '['는 일반적으로 정수로 산술 연산을합니다. –

답변

0

명시 적으로 암시 적 변환에 대한 KSH 변수를 선언해야한다 :

integer total_i 
integer average_i 

Total=`echo ${marks[1]}+${marks[2]}+${marks[3]}+${marks[4]}+${marks[5]} | bc` 
Average=`echo "$Total 5" | awk '{print $1/$2}'` 

total_i = $Total 
average_i = $Average 

if [ average_i -le 11.5 ]; then 
    result="failing" 
else 
    result="passing" 
fi 

print "Total: $Total" 
print "Result: $Average" 
print "$result" 

이 변수 정수 비록 그들이 소수점 값을 수용 할 수 있습니다.