koalaman / shellcheck Public
SC1039
John Gardner edited this page Dec 22, 2021
·
3 revisions
Remove indentation before end token (or use <<- and indent with tabs).
Problematic code:
for f in *.png
do
cat << HTML
<img src="$f" /><br/>
HTML
done > index.htmlCorrect code:
for f in *.png
do
cat << HTML
<img src="$f" /><br/>
HTML
done > index.htmlRationale:
The here document delimiter will not be recognized if it is indented.
You can fix it in one of two ways:
- Simply remove the indentation, even though this may break formatting.
- Use
<<-instead of<<, and indent the script with tabs only (spaces will not be recognized).
Removing the indentation is preferred, since the script won't suddenly break if it's reformatted, copy-pasted, or saved with a different editor.
Exceptions:
If the line was supposed to be a literal part of the here document, consider choosing a less ambiguous token.