Seu código pareceu bem para mim, então copiei linha para linha e funcionou para mim em:
- OSX 10.7, bash 3.2.48 (1) -release (x86_64-apple-darwin11).
- Ubuntu 10.04.3, bash 4.1.5 (1) -release (x86_64-pc-linux-gnu)
É possível redigitar o arquivo manualmente apenas para ter certeza de que não está faltando ou adicionando espaços / guias / etc?
Além disso, como você está executando? Eu fiz um chmod +x test.sh
e, em seguida, ./test.sh
EDIT: Eu recebi o mesmo erro que você quando eu adicionei um espaço no início da linha com o fechamento HEREDOC.
Nota adicional: Um espaço à direita atrás do fechamento HEREDOC
também pode causar isso