Se isso não funcionar como documentado, tente mover o token EOF para o início da linha (remover todos os espaços em branco).
Estou trabalhando na grande Linha de Comando do Linux do William Shotts Jr. no meu Mac OSX 10.7.5 sistema. 90% do linux que o Shotts cobre está perto o suficiente de Darwin que eu posso descobrir ou o GTEM para descobrir o que está acontecendo. Eu cheguei no capítulo 27 em "Writing Shell Scripts" e estou ficando preso criando "here files" dentro de uma função.
Eu recebo um erro syntax error: unexpected end of file
quando incluo a seguinte função:
report_uptime () {
cat <<- _EOF_
<H2>System Uptime</H2>
<PRE>$(uptime)</PRE>
_EOF_
return
}
O erro desaparece se eu usar o seguinte alocador de espaço de função:
report_uptime () {
return
}
Além disso, em outro lugar do script, fora de uma função, eu uso o formato cat << _EOF_
para criar um "arquivo aqui" sem problemas:
cat << _EOF_
<HTML>
<HEAD>
<TITLE>$TITLE</TITLE>
</HEAD>
<BODY>
<H1>$TITLE</H1>
<P>$TIME_STAMP</P>
$(report_uptime)
$(report_disk_space)
$(report_home_space)
</BODY>
</HTML>
_EOF_
Se alguém tiver alguma ideia do que estou fazendo de errado, eu ficaria grato!
Se isso não funcionar como documentado, tente mover o token EOF para o início da linha (remover todos os espaços em branco).
Tags linux macos shell-script