Os operadores de redirecionamento "<<" e "<< -" permitem o redirecionamento de linhas contidas em um arquivo de entrada do shell, conhecido como "documento aqui", para a entrada de um comando.
O documento aqui deve ser tratado como uma única palavra que começa após a próxima e continua até que exista uma linha contendo apenas o delimitador e a, sem caracteres no meio. Então, o próximo documento aqui começa, se houver um. O formato é o seguinte:
[n]<<word
here-document
delimiter
onde o n opcional representa o número do descritor de arquivo. Se o número for omitido, o documento aqui se refere à entrada padrão (descritor de arquivo 0).
Se qualquer caractere no word for citado, o delimitador será formado pela remoção da citação no word, e as linhas do documento aqui não serão expandidas. Caso contrário, o delimitador deve ser a própria palavra.
Se nenhum caractere no word for citado, todas as linhas do documento aqui serão expandidas para expansão de parâmetro, substituição de comando e expansão aritmética. Nesse caso, a entrada se comporta como aspas duplas internas (consulte aspas duplas). No entanto, o caractere de aspas duplas ('"') não deve ser tratado especialmente em um documento aqui, exceto quando as aspas duplas aparecerem em" $ () "," `` "" ou "$ {}".
Se o símbolo de redirecionamento for "<< -", todos os <tab>
caracteres iniciais serão retirados das linhas de entrada e da linha que contém o delimitador à direita. Se mais de um operador "<<" ou "<< -" for especificado em uma linha, o documento aqui associado ao primeiro operador deve ser fornecido primeiro pelo aplicativo e deve ser lido primeiro pelo shell.
Quando um documento aqui é lido a partir de um dispositivo terminal e o shell é interativo, ele deve gravar o conteúdo da variável PS2, processada conforme descrito em Shell Variables, em erro padrão antes de ler cada linha de entrada até que o delimitador seja reconhecido.
Alguns exemplos ainda não dados.
cat
. Tentepsql ... << EOF ...
Consulte também "aqui strings". mywiki.wooledge.org/BashGuide/InputAndOutput?#Here_Strings