From 1ca62fc68c66d5f431634510fc26452d17001405 Mon Sep 17 00:00:00 2001 From: Vidar Holen Date: Sat, 26 May 2018 11:13:47 -0700 Subject: [PATCH] Updated SC1044 (markdown) --- SC1044.md | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/SC1044.md b/SC1044.md index 0b95004..43135b4 100644 --- a/SC1044.md +++ b/SC1044.md @@ -1 +1,32 @@ -**COULDN'T FIND THE END OF THE HERE DOC.** The starting Here tag must match the closing Here tag. \ No newline at end of file +## Couldn't find end token `EOF' in the here document. + +### Problematic code: + +```sh +cat << EOF + Hello World +``` + +### Correct code: + +```sh +cat << EOF + Hello World +EOF +``` +### Rationale: + +The `<<` here document (aka heredoc) was not properly terminated. The terminating token needs to be on a separate line without indenting (or indented with tabs only when using `<<-`). + +Note that you can not put here documents in one liners. For such use cases, use a `<<<` here string: + + cat << EOF hello world EOF # Wrong: data and terminator can not be on the same line + cat <<< "hello world" # Correct + +### Exceptions: + +None + +### Related resources: + +* Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc! \ No newline at end of file