Это «документ здесь» с необычным маркером конца.
Здесь-документ представляет собой тип перенаправления, и обычно выглядит как
utility <<MARKER
document
content
goes here
MARKER
То есть он подает документ, разделенный MARKER
, на утилиту со стандартным вводом.
Это подобно utility <file
, где file
содержит строки в здесь-документе, за исключением того, что оболочка будет выполнять расширение переменных и подстановку команд в текст документа (это можно предотвратить цитируя маркер как \MARKER
или 'MARKER'
в начале).
Маркер здесь-документа может быть любым словом, но $$$
является весьма необычным выбором слова для него. Поскольку $
имеет особое значение в оболочке, использование $
в маркере может или может привести читателя в замешательство.
Если вы введете
somecommand <<stuff
в оболочке оболочка ожидает, что вы передадите остальное содержимое этого документа, а затем слово stuff
на отдельной строке. Вот как вы сигнализируете конец ввода в здесь-документе.