Eu tenho um script que grava algum conteúdo em um arquivo com cat
e EOF
. Embora essa coisa funcione dentro de um script bash, não funciona se eu a colocar dentro de uma função.
Código de trabalho :
cat << EOF | sudo tee /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
EOF
É realce de sintaxe (o que parece bom);
Código não funcionando :
function someFunctions {
cat << EOF | sudo tee /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
EOF
}
someFunctions
O realce de sintaxe deste aqui (o que não parece bom);
Meu editor (Atom) mostra tudo em verde, o que significa que perde o realce de sintaxe, mas não consegui encontrar o que está errado.
Como posso consertar isso?
O
EOF
marcador here-doc deve estar no início da linha ou um caractere TAB completo recuado:Eu removi a
function
palavra-chave porque ela está obsoleta, ecat
ela não agrega valor. Eu também usei<<-'EOF'
(em vez de<<EOF
) para que os caracteres TAB principais sejam removidos e o conteúdo do here-doc não seja avaliado para variáveis e outras substituições. Se você quiser substituição de variável, não cite oEOF
, e use<<-EOF
em vez disso.