Heredoc sounds more convenient for this purpose. It is used to send multiple commands to a command interpreter program like ex or cat
cat << EndOfMessage This is line 1. This is line 2. Line 3. EndOfMessage
The string after <<
indicates where to stop.
To send these lines to a file, use:
cat > $FILE <<- EOM Line 1. Line 2. EOM
You could also store these lines to a variable:
read -r -d '' VAR << EOM This is line 1. This is line 2. Line 3. EOM
This stores the lines to the variable named VAR
.
When printing, remember the quotes around the variable otherwise you won’t see the newline characters.
echo "$VAR"
Even better, you can use indentation to make it stand out more in your code. This time just add a -
after <<
to stop the tabs from appearing.
read -r -d '' VAR <<- EOM This is line 1. This is line 2. Line 3. EOM
But then you must use tabs, not spaces, for indentation in your code.