Ambiguous error

Hello everybody,
I just took over this job from someone else and in the past this script they built worked but i recently upgraded from openSuSe 11.4 to 12.1

Now when i run the script i get an ambiguous error at line 25 (the first line after add() )
I have edited out the webpath and any passwords other than that the code is identical.

#!/bin/sh

# Version 1.1 Updated to new path /server/path/
# Version 1.0 Script created, tested and released

#Modified by Creater (creator@email) for OpenSUSE 11
#BULK add new user and delete users script from following website
#Arne Aase  Blog Archive  Guide: Simple shell script - Adding users to linux from file

#Added CHMOD command to stop users from reading other folders
#Added MySQL database (called username) setup for user using same username and password
#added MySQL database delete command when deleting user

#usage - add new students:
#sh students.sh -a add.txt
#text file format:
#add new user (1 username / password per line): username,passowrd,

#usage - delete students:
#sh students.sh -d del.txt
#text file format:
#delete user (1 per line): username

add()
{
        while read line
        do
                username=`echo $line | cut -d',' -f1`
                #removed  | mkpasswd -H md5 -s from the end of line
                password=`echo $line | cut -d',' -f2`
                echo "Accounts created for $username"
                sudo /usr/sbin/useradd -m $username -g 1001 -k /server/path/student/skel/ -d /server/path/student/$username

                #from http://www.kylecorey.ca/bash_scripting
                #assigns the password for the user
                echo "$password" | passwd --stdin "$username"
                #echos password for terminal display
                echo "Password for $username is $password"

                #set permissions so user cannot read other folders
                chmod g-rx /server/path/student/$username


                #create new database for user
                #from RBBOT on Grant priviledge for a user to a database via bash scripting - Web Hosting Talk
                mysql --user user --password=myawesomepassword --execute="CREATE USER $username@'localhost' IDENTIFIED BY '$password'"
                mysql --user user --password=myawesomepassword --execute="CREATE DATABASE $username"
                mysql --user user --password=myawesomepassword  --database mysql --execute="grant select , insert , update , delete , alter , create , drop on $username.* to $username@localhost iden
tified by '$password'"

                done < $1
                exit 1
}

del()
{
        while read line
        do
                username=`echo $line | cut -d',' -f1`
                #added -r to delete user directory
                sudo /usr/sbin/userdel -r $username

                #added MySQL command to drop user database
                #from RBBOT on Grant priviledge for a user to a database via bash scripting - Web Hosting Talk
                mysql --user user --password=myawesomepassword --execute="DROP DATABASE $username"
                mysql --user user --password=myawesomepassword --execute="DROP USER $username@'localhost'"

                echo "Accounts deleted $username"
        done < $1
        exit 1
}

help()
{
        echo "usage: -a -d -h <file>"
        echo "    -a add users listed in file"
        echo "    -d delete users listed in file"
        echo "    -h print help"
        exit 1
}

while getopts adh opt
do
        case ${opt} in
                a ) add ${!#};;
                d ) del ${!#};;
                h ) help;;
                \? ) help;;
        esac
done

help

line is a command in Linux - newer bash versions complain when you use a command as variable.

line means read one line from stdin - the standard input device