Um trecho do artigo :
Aqui Documento
Um documento aqui é usado para redirecionar a entrada para um script ou programa de shell interativo.
Podemos executar um programa interativo em um script de shell sem ação do usuário, fornecendo a entrada necessária para o programa interativo ou script de shell interativo.
A forma geral para um documento aqui é -
comando <<
delimiter
documento
delimitador
Aqui, o shell interpreta o operador <<
como uma instrução para ler a entrada até encontrar uma linha contendo o delimitador especificado. Todas as linhas de entrada até a linha contendo o delimitador são então alimentadas na entrada padrão do comando.
O delimitador informa ao shell que o documento aqui foi concluído. Sem ele, o shell continua a ler a entrada para sempre. O delimitador deve ser uma única palavra que não contenha espaços ou tabulações.
A seguir, a entrada para o comando wc -l
para contar o número total de linhas -
$wc -l << EOF
This is a simple lookup program
for good (and bad) restaurants
in Cape Town.
EOF
3
$
Você pode usar o documento aqui para imprimir várias linhas usando seu script da seguinte forma:
#!/bin/sh
cat << EOF
This is a simple lookup program
for good (and bad) restaurants
in Cape Town.
EOF
Isso produziria o seguinte resultado -
Este é um programa de pesquisa simples
para bons (e ruins) restaurantes
na Cidade do Cabo.
O script a seguir executa uma sessão com o editor de texto vi
e salva a entrada no arquivo test.txt.
#!/bin/sh
filename=test.txt
vi $filename <<EndOfCommands
i
This file was created automatically from
a shell script
^[
ZZ
EndOfCommands
Se você executar este script com vim
agindo como vi
, provavelmente verá a saída como a seguir -
$ sh test.sh
Vim: Warning: Input is not from a terminal
$
Depois de executar o script, você deverá ver o seguinte incluído no arquivo test.txt -
$ cat test.txt
This file was created automatically from
a shell script
$