
org.sonar.l10n.shellcheck.rules.shellcheck.SC2261.html Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sonar-shellcheck-plugin Show documentation
Show all versions of sonar-shellcheck-plugin Show documentation
ShellCheck plugin for SonarQube
The newest version!
Multiple redirections compete for stdout. Use cat, tee, or pass filenames instead.
(or stdin
, or stderr
, or FD 3
)
Problematic code
grep foo < input1 < input2 > output1 > output2 > output3
Correct code
# Merge inputs into a single stream, write outputs individually
cat input1 input2 | grep foo | tee output1 output2 > output3
# Pass inputs as filenames, write outputs individually
grep foo input1 input2 | tee output1 output2 > output3
Rationale
A file descriptor, whether stdin, stdout, stderr, or non-standard ones, can only point to a single file/pipe.
For input, many commands support processing multiple filenames. In these cases you can just specify the filenames instead of redirecting. Alternatively, you can use cat
to merge multiple filenames into a single stream.
For output, you can use tee
to write to multiple output sinks in parallel.
Exceptions
Zsh will automatically cat
inputs and tee
outputs, but none of the shells supported by ShellCheck do.
Related resources
- Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!
© 2015 - 2025 Weber Informatics LLC | Privacy Policy