<< (Here documents)
Un here document es un tipo de redirección que le dice al shell que vaya leyendo el input que se le está pasando hasta encontrar una determinada palabra clave (‘TAG’ en el ejemplo).
cat >> file << 'TAG'
primera línea
segunda línea
última línea
TAG
Consiste, pues, en un bloque de código cuyas líneas se pasan una a una a un comando o programa interactivo (como ftp o cat). Podemos usar cualquier TAG para indicar el final del bloque que compone el here document, pese a que se suele usar "EOF", pero podríamos usar cualquier cosa, mientras estemos seguros de que será una cadena de carácteres que no se usará dentro del bloque que queremos procesar.
Un posible uso es el de añadir un bloque de líneas a un fichero. Cabe decir que el here document incluirá los espacios/tabs de inicio de cada línea. Si no es lo que quieres, puedes eliminar los tabs de inicio de línea al procesar el here document añadiéndo un "-" justo tras la redirección y antes del tag (quedaría "<<-"). Aquí un ejemplo manteniendo tabs y usando variables dentro del bloque:
NOMBRE="$1"
cat >> file << EOF
Hola $NOMBRE
este es mi bloque de líneas
que guardaré en file
esta línea tiene un tab
y esta dos espacios
EOF
Continuar leyendo "Here documents (<<), Here strings (<<<) y el comando "read""