hello
I have write one script which calculate result of student and takes input from file named "student.txt". This file has filed name rollno, name, mark1,mark2 and mark3.
My problem is that i want percentage with 2 floating point. I have write whole shell script but it can't work. Code is here.
echo "\n\n\tSTUDENT MARKSHEET"
echo "\t=================\n"
echo "NAME \t \t TOTAL \t \t PERCENTAGE \t GRADE "
echo "====================================================="
while [ $i -le $len ]
do
record=`head -n $i student.txt | tail -n 1`
total=0
for (( j=3 ; $j <=5 ; j++ ))
do
marks=`echo $record | cut -d " " -f $j`
total=`expr $total + $marks`
done
name=`echo $record | cut -d " " -f 1`
per=`echo "scale=2 ; $total/3" | bc` #this statement can't work
# per=`expr $total / 3`
if [ $per -ge 85 ] && [ $per -le 100 ] ; then
grade="AA"
elif [ $per -ge 75 ] && [ $per -le 84 ] ; then
grade="AB"
elif [ $per -ge 65 ] && [ $per -le 74 ] ; then
grade="BB"
elif [ $per -ge 55 ] && [ $per -le 64 ] ; then
grade="BC"
elif [ $per -ge 45 ] && [ $per -le 54 ] ; then
grade="CC"
elif [ $per -ge 0 ] && [ $per -le 44 ] ; then
grade="FAIL"
else
grade="-"
fi
echo "$name $total $per % $grade"
i=`expr $i + 1`
done
Errors like
13: line 21: [: 66.00: integer expression expected
13: line 23: [: 66.00: integer expression expected
13: line 25: [: 66.00: integer expression expected
13: line 27: [: 66.00: integer expression expected
13: line 29: [: 66.00: integer expression expected
13: line 31: [: 66.00: integer expression expected