shell script: “'<< " inégalée”-erreur de syntaxe à l'aide de document ici

Salut, je cherche à écrire un programme qui alerte l'utilisateur si une personne d'intérêt est venu en ligne à un moment donné. Mon programme à ce jour est

#!/usr/bin/ksh
message=""
when=""
validFiles=""
validUsers=""

if [ $# -gt 0 ] ; then
    while getopts w:m: opt
    do
        case $opt in
        w) when=$OPTARG;;
        m) message=$OPTARG;;
        \?) echo $USAGE exit 2;;
        esac
    done
    shift $(($OPTIND - 1))
    if [[ $# -gt 0 ]] ; then
        for i; do
            if [[ -f "$i" && -r "$i" ]]; then
                if ! echo $validFiles | grep $i >/dev/null; then
                    validFiles="$validFiles $i"
                fi
            elif id $i 2> /dev/null 1>&2; then
                if ! echo $validUsers | grep $i > /dev/null; then
                    validUsers="$validUsers $i"
                fi
            fi
        done
        if [[ $when != "" && $validFiles != "" || $validUsers != "" ]] ;then
            for i in $validUsers; do
                if ! grep $i $validFiles >/dev/null; then
                    at $when <<"END"
                        if finger $i | grep $i; then
                            echo "$i is online" | elm $message
                        fi
                    END
                fi
            done
        fi
    else
        echo "No files or usernames"
    fi
else
    echo "No arguments provided"
fi

Mon problème est que lorsque je tente d'exécuter ce que je reçois le message d'erreur

 syntax error at line 33 : `<<' unmatched

Je ne suis pas sûr pourquoi c'est figurant. J'ai vérifié beaucoup d'autres exemples et ma commande,ici le document, qui semble être la même que la leur. Quelqu'un pourrait-il m'aider? Merci.

OriginalL'auteur cogle | 2014-03-16