Bash: несколько методов определения многострочных строк с помощью Heredoc

В Bash существует несколько методов определения многострочных строк с использованием синтаксиса heredoc. Вот несколько примеров:

Метод 1: использование одного разделителя Heredoc

#!/bin/bash
# Method 1
multiline_string=$(cat << EOF
This is a multiline string.
It can span multiple lines.
EOF
)
echo "$multiline_string"

Метод 2. Использование одного разделителя Heredoc без табуляции

#!/bin/bash
# Method 2
multiline_string=$(cat <<- EOF
    This is a multiline string.
    It can span multiple lines.
EOF
)
echo "$multiline_string"

Метод 3. Использование нескольких разделителей Heredoc

#!/bin/bash
# Method 3
multiline_string=$(cat << EOF
This is a multiline string.
It can span multiple lines.
EOF
)
echo "$multiline_string"

Во всех трех методах многострочная строка заключена между разделителями <<и EOF. Вместо EOFвы можете использовать любое слово; это обычно используется как соглашение. Строка между разделителями может занимать несколько строк, при этом в выводе сохраняются ведущие табуляции или пробелы.