Esta pergunta já tem respostas aqui :
Comentários
- Veja 3.6.6 Aqui Documentos no manual do bash
Resposta
<<-EOF
irá ignorar as guias iniciais em seu heredoc, enquanto <<EOF
não. Assim:
cat <<EOF Line 1 Line 2 EOF
produzirá
Line 1 Line 2
enquanto
cat <<-EOF Line 1 Line 2 EOF
produz
Line 1 Line 2
Resposta
Se você usar <<-EOF
, recomendo a página de manual do Bourne Shell:
Se, no entanto, o hífen (-) for anexado a < <:
-
as guias iniciais são retiradas da palavra antes que a entrada do shell seja lida (mas depois a substituição do parâmetro e do comando é feita na palavra);
-
as guias iniciais são retiradas da entrada do shell à medida que é lida e antes de cada linha ser comparada com a palavra; e
-
a entrada do shell é lida até a primeira linha que corresponde literalmente à palavra resultante ou para um EOF.
Portanto, <<-
permite recuar o conteúdo do documento aqui para melhor legibilidade.