Comments (2)
This inconsistency was intentionally introduced in d603ee1 to reduce the noise of A && B || C
when C is a single, allowlisted command (echo, printf, exit, return), since these generally aren't a problem. It does not aim to generally determine whether C is a harmless or side effect free command or structure, as this is an infinite rabbit hole.
Somewhat unrelated, the suggestion shouldn't trigger when B is a test, and this is added in 76ff702.
from shellcheck.
@koalaman Oh 76ff702 seems definitely related - it actually solves my main issue 🤩 Thanks!
So a little background, in case someone else stumbles upon the same: I got here in the first place because of simple initial variable checks in a script, such as:
#!/bin/sh
#Check env vars
[ "$NECESSARY_ENV_VAR1" ] && [ "$NECESSARY_ENV_VAR2" ] || {
echo "Missing correct set of environment vars (NECESSARY_ENV_VAR1 and NECESSARY_ENV_VAR2)"
exit 1
}
...
This used to trigger a SC2015, so I dug into it and noticed that it doesn't trigger with a simpler [ "$NECESSARY_ENV_VAR1" ] && [ "$NECESSARY_ENV_VAR2" ] || exit 1
... And this was inconsistent, but I agree it should rather be fixed by focusing on the nature of B
in the A && B || C
problem.
from shellcheck.
Related Issues (20)
- SC1090 does not recognize `~` as a single expansion
- Option to specify shell iff shebang and in-file directives are missing
- SC2001 should not be recommended when shebang is /bin/ksh HOT 3
- RFC: Should SC2312 warn on testing pipelines? HOT 1
- FR: SC2086: Annotate a variable definition not meat to be quoted
- 1
- ShellCheck not available on DNF? HOT 1
- rule for double quote HOT 1
- "SC2004 (style): $/${} is unnecessary on arithmetic variables" is too strict HOT 3
- feature request: warn discarding exit code of `test`, `[`, and `[[` HOT 2
- False positive for SC1003 HOT 4
- SC2016 false positive with OpenShift client
- Don't warn about a function not invoked if the function is exported
- shell-test
- shellcheck-v0.10.0.linux.riscv64.tar.xz is actually gzipped, not xz'd HOT 1
- A large number of shells are collected. If you are interested, please contact my plane @VS889977
- /bin/dash detect error
- [QUESTION] is xargs also a solution to sc2089, sc2090? HOT 2
- [SC2312] triggers for return in a condition HOT 2
- SC2116 (Useless echo?) and SC2046 (prevent word splitting) should not apply if in case of SC2327 (command substitution will be empty). HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from shellcheck.