KornShell脚本平均值比较
我正试图让这个KornShell(ksh)起作用,但if语句似乎不起作用(我肯定可能是错的) 每当我运行它时,平均值和总数都会正确计算,但无论平均值是否小于11.5,结果总是“失败”KornShell脚本平均值比较,shell,unix,ksh,Shell,Unix,Ksh,我正试图让这个KornShell(ksh)起作用,但if语句似乎不起作用(我肯定可能是错的) 每当我运行它时,平均值和总数都会正确计算,但无论平均值是否小于11.5,结果总是“失败” 非常感谢您的帮助。您必须显式声明ksh变量以进行隐式转换: integer total_i integer average_i Total=`echo ${marks[1]}+${marks[2]}+${marks[3]}+${marks[4]}+${marks[5]} | bc` Average=`echo "
非常感谢您的帮助。您必须显式声明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"
即使变量是整数,它们也可以容纳十进制值。如果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"