seu script está incompleto, pois ele está perdendo a terminação EOF
literal.
Eu tento explicar o roteiro:
a primeira linha simplesmente atribui "olá" à variável string
.
string="hello"
a segunda linha inicia o comando ed
e alimenta (via stdin
) as linhas a seguir até encontrar o EOF
literal ( << foo
significa: as linhas a seguir até que foo
sejam redirecionadas para o stdin
)
ed << EOF
as seguintes linhas são comandos ed
.
abra um arquivo chamado * any_file * ( e any_file
) e insira 1i
da string ${string}
(isso será expandido para "olá").
mas, como você está sem a terminação EOF
literal, o redirecionamento de stdin gera um erro.