This backslash is part of a comment and does not continue the line.
Problematic code:
sed \
-e "s/HOST/$HOSTNAME/g" \
# -e "s/USER/$USER/g" \
-e "s/ARCH/$(uname -m)/g" \
"$buildfile"
Correct code:
sed \
-e "s/HOST/$HOSTNAME/g" \
-e "s/ARCH/$(uname -m)/g" \
"$buildfile"
# This comment is moved out:
# -e "s/USER/$USER/g" \
or using backticked, inlined comments:
sed \
-e "s/HOST/$HOSTNAME/g" \
`# -e "s/USER/$USER/g"` \
-e "s/ARCH/$(uname -m)/g" \
"$buildfile"
(ShellCheck recognizes this idiom and does not suggest quotes or $()
, neither of which would have worked)
Rationale:
ShellCheck found a line continuation followed by a commented line that appears to try to do the same.
Backslash line continuations are not respected in comments, and the line instead simply terminates. This is a problem when commenting out one line in a multi-line command like the example.
Instead, either move the line away from its statement, or use an `# inline comment`
in an unquoted backtick command substitution.
Exceptions:
None.
Related resources:
- Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!
-
Installation
-
Usage
-
Integrating and extending
Each individual ShellCheck warning has its own wiki page like SC1000. Use GitHub Wiki's "Pages" feature above to find a specific one, or see Checks.