Kill -9 within Bash script kicks out usage info

I have a start|stop|restart script for a custom app we have. After it tries to stop our process the correct way, it checks to see if it's gone, if not it tries to kill it, if that doesn't work kill -9.

If I run kill -9 on the PID from the command line it kills it and all is well. If I have the same command within my script it kills it properly, but it also kicks out some usage info. I know I could redirect stdout/stderr for the kill command within the script but I'd rather not if possible.

Here's the code snip:

  # Check running processes against our list of targets.  If any of
  # them are still running try to kill.
  stoptargetcount=${#stoptargets[@]}
  for ((i=0;i<$stoptargetcount;i++)); do
    found=0
    for ((j=0;j<$resincount;j++)); do
      if [ "${stoptargets[$i]}" == "${instancename[$j]}" ]; then
        found=1
        killjavapid=${javapid[$j]}
        killwrapperpid=`ps alx | grep $killjavapid | grep -v "grep" | awk '{ print $4 }'`
      fi
    done
    if [ $found -eq 1 ]; then
      if [ $pass -eq 1 ]; then
        echo "${stoptargets[$i]} appears to be hung.  Attempting kill..."
        sudo kill $killwrapperpid
        sudo kill $killjavapid
        waiting 5
      elif [ $pass -eq 2 ]; then
        echo "${stoptargets[$i]} is still hung.  Attempting kill -9..."
        echo "WARNING - This may result in zombied child processes"
        sudo kill -9 $killwrapperpid
        sudo kill -9 $killpid
        waiting 5
      else
        echo "ERROR - There appears to be something wrong with the script...exiting"
        exit 1
      fi
      recheck=1
    fi
  done

and the output...

Checking instance selection...
inst04 found
inst02 found
Stopping instances...
Waiting 5 seconds...
inst04 appears to be hung.  Attempting kill...
Waiting 5 seconds...
inst02 appears to be hung.  Attempting kill...
Waiting 5 seconds...
inst04 is still hung.  Attempting kill -9...
WARNING - This may result in zombied child processes
usage: kill [ -s signal | -p ] [ -a ] pid ...
       kill -l [ signal ]
Waiting 5 seconds...
inst02 is still hung.  Attempting kill -9...
WARNING - This may result in zombied child processes
usage: kill [ -s signal | -p ] [ -a ] pid ...
       kill -l [ signal ]
Waiting 5 seconds...

There's a bash builtin 'kill' which is different from the '/usr/bin/kill'.
Also when you do 'sudo' it most likely defaults to '/bin/sh' which has no builtin 'kill'.
The 'signatures' for '/usr/bin/kill' and bash's builtin 'kill' are different.
'man bash':

     kill [-s sigspec | -n signum | -sigspec] [pid | jobspec] ...
     kill -l [sigspec | exit_status]
          Send the signal named  by  sigspec  or  signum  to  the
          processes named by pid or jobspec.  sigspec is either a
          signal name such as SIGKILL or a signal number;  signum
          is  a  signal number.  If sigspec is a signal name, the
          name may be given with or without the SIG  prefix.   If
          sigspec  is  not  present, then SIGTERM is assumed.  An
          argument of -l lists the signal names.   If  any  argu-
          ments  are  supplied when -l is given, the names of the
          signals corresponding to the arguments are listed,  and
          the return status is 0.  The exit_status argument to -l
          is a number specifying either a signal  number  or  the
          exit  status of a process terminated by a signal.  kill
          returns true if at least one  signal  was  successfully
          sent,  or false if an error occurs or an invalid option
          is encountered.