Operatory przekierowania „<<” i „<< -” pozwalają na przekierowanie linii zawartych w pliku wejściowym powłoki, znanym jako „dokument tutaj”, na wejście polecenia.
Niniejszy dokument należy traktować jako pojedyncze słowo, które zaczyna się po następnym i trwa do momentu, aż pojawi się wiersz zawierający tylko ogranicznik ia, bez znaków pomiędzy nimi. Następnie rozpoczyna się następny dokument tutaj, jeśli taki istnieje. Format jest następujący:
[n]<<word
here-document
delimiter
gdzie opcjonalne n oznacza numer deskryptora pliku. Jeśli numer zostanie pominięty, dokument tutaj odnosi się do standardowego wejścia (deskryptor pliku 0).
Jeżeli cytowany jest jakikolwiek znak w słowie, ogranicznik tworzy się poprzez usunięcie cudzysłowu ze słowem, a wiersze dokumentu tutaj nie będą rozszerzane. W przeciwnym razie separatorem będzie samo słowo.
Jeżeli nie podaje się żadnych słów w słowie, wszystkie wiersze niniejszego dokumentu należy rozwinąć w celu rozszerzenia parametrów, podstawienia poleceń i rozszerzenia arytmetycznego. W tym przypadku wejściowy zachowuje się jak wewnętrzne cudzysłowy (patrz Podwójne cudzysłowy). Jednak znak podwójnego cudzysłowu („” ”) nie będzie traktowany specjalnie w niniejszym dokumencie, z wyjątkiem sytuacji, gdy podwójny cudzysłów pojawia się w„ $ () ”,„ `` ”lub„ $ {} ”.
Jeżeli symbolem przekierowania jest „<< -”, wszystkie <tab>
znaki wiodące zostaną usunięte z linii wejściowych i linii zawierającej ogranicznik końcowy. Jeżeli w wierszu podano więcej niż jeden operator „<<” lub „<< -”, dokument dołączony do pierwszego operatora zostanie dostarczony jako pierwszy przez aplikację i zostanie najpierw odczytany przez powłokę.
Kiedy niniejszy dokument jest odczytywany z urządzenia końcowego, a powłoka jest interaktywna, zapisuje zawartość zmiennej PS2, przetworzonej jak opisano w Zmiennych powłoki, do standardowego błędu przed odczytaniem każdego wiersza danych wejściowych, dopóki ogranicznik nie zostanie rozpoznany.
Niektórych przykładów jeszcze nie podano.
cat
. Spróbujpsql ... << EOF ...
Zobacz także „ciągi tutaj”. mywiki.wooledge.org/BashGuide/InputAndOutput?#Here_Strings