Is there any way to for a Bash heredoc to interpret '\n\' in a heredoc?
I have an iteratively built string in a loop, something like
for i in word1 word2 word3
do
TMP_VAR=$i
ret="$ret\n$TMP_VAR"
done
and then I want to use the created string in a heredoc:
cat <<EOF > myfile
HEADER
==
$ret
==
TRAILER
EOF
however I would like to interpret the "\n" character as newline, so that the output is
HEADER
==
word1
word2
word3
==
TRAILER
instead of
HEADER
==
\nword1\nword2\nword3
==
TRAILER
Is it possible? Or should I perhaps build my initial string somehow otherwise?
In bash you can use $'\n'
to add a newline to a string:
ret="$ret"$'\n'"$TMP_VAR"
You can also use +=
to append to a string:
ret+=$'\n'"$TMP_VAR"