# in a bash script the following works:
#!/bin/sh
text="this is line one
this is line two
this is line three"
echo -e $text > filename
# alternatively:
text="this is line one
this is line two
this is line three"
echo "$text" > filename
# cat filename gives:
this is line one
this is line two
this is line three
# You may use echo:
echo "this is line one"
"
""this is line two"
"
""this is line three"
> filename
#It does not work if you put "
" just before on the end of a line.
# Alternatively, you can use printf for better portability (I happened to have a lot of problems with echo):
printf '%s
'
"this is line one"
"this is line two"
"this is line three"
> filename
# Yet another solution might be:
text=''
text="${text}this is line one
"
text="${text}this is line two
"
text="${text}this is line three
"
printf "%b" "$text" > filename
#or
text=''
text+="this is line one
"
text+="this is line two
"
text+="this is line three
"
printf "%b" "$text" > filename
read -r -d '' my_variable <<
_______________________________________________________________________________
String1
String2
String3
...
StringN
_______________________________________________________________________________
echo | tee /tmp/pipetest << EndOfMessage
This is line 1.
This is line 2.
Line 3.
EndOfMessage
# If you're trying to get the string into a variable, another easy way is something like this:
USAGE=$(cat <<-END
This is line one.
This is line two.
This is line three.
END
)
#If you indent your string with tabs (i.e., ' '), the indentation will be stripped out. If you indent with spaces, the indentation will be left in.
#NOTE: It is significant that the last closing parenthesis is on another line. The END text must appear on a line by itself.