Can't indent heredoc to match code block's indentation
You can change the here-doc operator to <<-
. You can then indent both the here-doc and the delimiter with tabs:
#! /bin/bash
cat <<-EOF
indented
EOF
echo Done
Note that you must use tabs, not spaces to indent the here-doc. This means the above example won't work copied (Stack Exchange replaces tabs with spaces). There can not be any quotes around the first EOF
delimiter, else parameter expansion, command substitution, and arithmetic expansion are not in effect.
If you don't need command substitution and parameter expansion inside your here-document, you can avoid using tabs by adding the leading spaces to the delimiter:
$ cat << ' EOF'
> indented
> EOF
indented
$ cat << ' EOF' | sed -r 's/^ {8}//'
> unindented
> EOF
unindented
I couldn't figure out a way to use this trick and keep parameter expansion, though.
Try this:
sed 's/^ *//' >> ~/Desktop/text.txt << EOF
Load time-out reached and nothing to resume.
$(date +%T) - Transmission-daemon exiting.
EOF