Quando você usa o operador <<- EOF
, o delimitador EOF
deve ser precedido por TABs somente (ou estar no início da linha), não em espaços. Uma linha que consiste em <space>EOF
ou <space><TAB>EOF
não é vista como delimitador.
Em:
... <<- EOF
<TAB>line1
<TAB>line2\
<TAB>continued
<TAB>line3
<TAB>EOF
As principais TABs (acima representadas como <TAB>
) são removidas (exceto a linha lógica line2
continuada nas próximas linhas físicas, exceto em versões antigas de zsh
antes de ser corrigida) antes da EOF
é procurado.
Então, você precisaria remover todos os caracteres de espaço antes do delimitador _EOF_
. Ou melhor, evite <<-
e use o _EOF_
no início da linha (certificando-se de que não seja seguido por espaços em branco). Pessoalmente, eu não gosto da ideia de uma linguagem onde a sintaxe depende da quantidade de espaços, essa é a principal coisa que eu também não gosto em python
.