Esta pregunta ya tiene respuestas aquí :
Comentarios
Respuesta
<<-EOF
ignorará las pestañas iniciales en su heredoc, mientras que <<EOF
no lo hará. Por lo tanto:
cat <<EOF Line 1 Line 2 EOF
producirá
Line 1 Line 2
mientras
cat <<-EOF Line 1 Line 2 EOF
produce
Line 1 Line 2
Respuesta
Si usa <<-EOF
, le recomiendo la página de manual de Bourne Shell:
Sin embargo, si el guión (-) se agrega a < <:
-
Las pestañas iniciales se eliminan de la palabra antes de que se lea la entrada del shell (pero después la sustitución de parámetros y comandos se realiza en la palabra);
-
las pestañas iniciales se eliminan de la entrada del shell a medida que se lee y antes de que cada línea se compare con la palabra; y
-
la entrada del shell se lee hasta la primera línea que coincide literalmente con la palabra resultante, o con un EOF.
Entonces <<-
permite sangrar el contenido del documento aquí para una mejor legibilidad.