
Я только что наткнулся на <<
команду, которая используется следующим образом:
cat > outfile.txt <<EOF
Multi-line content
that will be written to outfile.txt
EOF
Теперь, я понятия не имею, как это называется, но я бы очень хотел узнать его название, в первую очередь, чтобы я мог пойти и поискать и узнать больше о его синтаксисе. К сожалению, поиск в Google по запросу "<<" просто не работает.
решение1
Это называется «Документ здесь».
решение2
Это форма перенаправления, называемаяздесь документилихередок. Он перенаправляет содержимое указанного встроенного документа в команду. Документ ограничивается указанным словом ( EOT
ниже). Кавычки слова или части слова после <<
создают кавычки here-документа, в котором оболочка не будет выполнять расширения.
$ tac << EOT
> 123
> 456
> EOT
456
123
решение3
В контексте Unix это действительно известно как "heredoc" (встроенный документ). Я считаю, что конструкция "heredoc" пришла из PHP, Perl и других языков сценариев, а для сценариев оболочки я бы предпочел придерживаться "heredoc" (встроенный документ).