How do I preserve newlines in a quoted string in Bash? [duplicate]
Solution 1:
Add quotes to make it work:
echo "$MYSTRING"
Look at it this way:
MYSTRING="line-1
line-2
line3"
echo $MYSTRING
this will be executed as:
echo line-1 \
line-2 \
line-3
i.e. echo
with three parameters, printing each parameter with a space in between them.
If you add quotes around $MYSTRING
, the resulting command will be:
echo "line-1
line-2
line-3"
i.e. echo
with a single string parameter which has three lines of text and two line breaks.