SC1133
Joachim Ansorg edited this page Nov 12, 2021
·
3 revisions
Unexpected start of line. If breaking lines, |/||/&& should be at the end of the previous one.
Problematic code:
dmesg
| grep "error"Correct code:
dmesg |
grep "error"Rationale:
ShellCheck has found a line that unexpectedly started with |, || or &&. This usually happens when a line is broken incorrectly.
When breaking around a |, || or &&, there are two options:
- Break the line after this token.
dmesgis a complete command by itself, butdmesg |is not so the shell knows to continue on the next line. - Use a
\at the end of the previous line to explicitly tell the shell to continue on the next.
Exceptions:
In v0.7.2 and below, this warning triggered incorrectly when starting a line with &>. In these versions, you can either ignore the warning, or move the redirection after the command name.
Related resources:
- Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!