I am having a major problem with printf, The more I pad it, the less I see 
The problem is in the first function, report
Am I ruining output somewhere? I wont print out the names propely, it cuts them off or deletes them completely 
#!/bin/bash
report()
{
printf "%-10s" STUD#
printf "%-20s" Name
printf "%-10s" A1 A2 A3 A4 A5 EXE TUT EXAM TOTAL
echo
echo "----------------------------------------------------------------------------------------------------------"
IFS2=$IFS
exec 0<"$FILE"
IFS=":"
while read STUDNO USRNM A1 A2 A3 A4 A5 e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 TUT EXAM
do
IFS=$IFS2
NAME=`searchPasswd "$USRNM"`
IFS=":"
printf "%-10s" $STUDNO
printf "%-20s" $NAME
#printf "%-10s" $A1 $A2 $A3 $A4 $A5 $e1 $TUT $EXAM
echo
done
IFS=$IFS2
}
searchPasswd()
{
A=`sed -n "/$1/p" /etc/passwd`
newName=`echo "$A" | cut -f 5 -d ":"`
newName=`echo "$newName" | cut -f 1 -d ","`
echo $newName
}
#Set arguments
if [ ! -z "$1" ] && [ ! -z "$2" ]
then
report=$1
FILE=$2
#Check file is good
if [ ! -f $FILE ]; then
echo "$FILE : does not exists"
exit 1
elif [ ! -r $FILE ]; then
echo "$FILE: can not read"
exit 2
fi
echo "Report type is ------->" $report
echo "Filename is ---------->" $FILE
report $FILE
else
echo "fail"
fi