Не существует прямого способа заставить новый символ строки -быть принудительно развернутым внутри документа здесь -. Но вы можете использовать переменную, содержащую закодированный символ новой строки, используя управляющую последовательность ANSI ($'\n'
), и сделать раскрытие переменной внутри heredoc.
Обратите внимание, что эта форма расширения hereodoc потребует, чтобы ваш de -ограничитель 'EOF'
не был заключен в кавычки, т.е. что-то вроде ниже,
nl=$'\n'
и используйте переменную $nl
в качестве заполнителя для символа новой строки
var=$(cat <<-EOF
a $nl
b $nl
c
EOF
)
, который теперь корректно излучает
echo "$var"
a
b
c