Los operadores de redirección "<<" y "<< -" permiten la redirección de líneas contenidas en un archivo de entrada de shell, conocido como "documento aquí", a la entrada de un comando.
El documento aquí se tratará como una sola palabra que comienza después de la siguiente y continúa hasta que haya una línea que contenga solo el delimitador y a, sin caracteres intermedios. Entonces comienza el siguiente documento aquí, si hay uno. El formato es el siguiente:
[n]<<word
here-document
delimiter
donde el n opcional representa el número de descriptor de archivo. Si se omite el número, el documento aquí se refiere a la entrada estándar (descriptor de archivo 0).
Si se cita cualquier carácter en la palabra, el delimitador se formará mediante la eliminación de la cita en la palabra, y las líneas del documento aquí no se expandirán. De lo contrario, el delimitador será la palabra misma.
Si no se citan caracteres en palabras, todas las líneas del documento aquí se expandirán para la expansión de parámetros, sustitución de comandos y expansión aritmética. En este caso, la entrada se comporta como comillas dobles internas (consulte Comillas dobles). Sin embargo, el carácter de comillas dobles ('"') no se tratará especialmente dentro de un documento aquí, excepto cuando la comilla doble aparezca dentro de" $ () "," `` "o" $ {} ".
Si el símbolo de redireccionamiento es "<< -", todos los <tab>
caracteres iniciales se eliminarán de las líneas de entrada y de la línea que contiene el delimitador final. Si se especifica más de un operador "<<" o "<< -" en una línea, el documento adjunto asociado con el primer operador será proporcionado primero por la aplicación y el shell deberá leerlo primero.
Cuando un documento aquí se lee desde un dispositivo terminal y el shell es interactivo, debe escribir los contenidos de la variable PS2, procesados como se describe en Variables de Shell, a error estándar antes de leer cada línea de entrada hasta que se haya reconocido el delimitador.
Algunos ejemplos aún no se dan.
Desafortunadamente, esto no funciona para los caracteres de espacio: POSIX favoreció la tab
sangría aquí. Yikes
cat
. Intentapsql ... << EOF ...
ver también "cadenas aquí". mywiki.wooledge.org/BashGuide/InputAndOutput?#Here_Strings