我正在努力让这个KornShell(ksh)工作,但if语句似乎不起作用(我当然可能是错的)。
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"
每当我运行它时,正确计算平均值和总数,但无论平均值是否<1,结果总是“失败”。 11.5。
非常感谢任何帮助。
答案 0 :(得分: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"
即使变量是整数,它们也可以容纳小数值。