heredoc (<<) подставляет блок текста как stdin команде — без склеивания строк через \n и без экранирования кавычек.
cat <<EOF > /etc/nginx/conf.d/app.conf
server {
listen 80;
server_name app.local;
}
EOF
Herestring (<<<) — то же самое, но для одной строки:
grep "error" <<< "$log_line"
Если EOF в кавычках (<<'EOF') — переменные внутри блока не подставляются, текст передаётся как есть. Без кавычек — $var и `cmd` раскрываются. <<-EOF убирает ведущие табы, что позволяет делать отступы внутри if/function без искажения вывода.
#linux #bash #heredoc #sysadmin
