Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
KornShell脚本平均值比较_Shell_Unix_Ksh - Fatal编程技术网

KornShell脚本平均值比较

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 "

我正试图让这个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 "$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"