Оператори переадресації "<<" та "<< -" дозволяють перенаправляти рядки, що містяться у вхідному файлі оболонки, відомому як "тут-документ", на вхід команди.
Документ тут розглядається як одне слово, яке починається після наступного і продовжується, поки не буде рядка, що містить лише роздільники та а, без символів між ними. Тоді починається наступний документ тут, якщо такий є. Формат такий:
[n]<<word
here-document
delimiter
де необов'язково n представляє номер дескриптора файлу. Якщо число опущено, цей документ стосується стандартного введення (дескриптор файлу 0).
Якщо цитується будь-який символ у слові, то роздільник розміру формується, виконуючи видалення цитат на слові, і рядки документа тут не розширюються. В іншому випадку роздільником є саме слово.
Якщо жодні символи в слові не цитуються, всі рядки документа тут розгортаються для розширення параметрів, заміни команд та арифметичного розширення. У цьому випадку вхідний дані поводяться як внутрішні подвійні лапки (див. Double-Quotes). Однак символ подвійної цитати ("" ") не повинен розглядатися спеціально в документі тут, за винятком випадків, коли подвійна цитата відображається в межах" $ () "," `` "або" $ {} ".
Якщо символ переадресації "<< -", всі провідні <tab>
символи повинні бути позбавлені від вхідних рядків та рядка, що містить кінцевий роздільник. Якщо на рядку вказано більше одного оператора "<<" або "<< -", цей документ, пов'язаний з першим оператором, подається спочатку додатком і зчитується спочатку оболонкою.
Коли документ зчитується з термінального пристрою, а оболонка є інтерактивною, він повинен записувати вміст змінної PS2, обробленої, як описано в змінних оболонки, до стандартної помилки перед зчитуванням кожного рядка введення, поки роздільник не буде розпізнаний.
Деякі приклади ще не наводяться.
cat
. Спробуйтеpsql ... << EOF ...
також див. "Тут рядки". mywiki.wooledge.org/BashGuide/InputAndOutput?#Here_Strings