Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Skip SC2015 when it end with: || true #2977

Open
2 tasks done
ale5000-git opened this issue May 4, 2024 · 3 comments · May be fixed by #3114
Open
2 tasks done

Skip SC2015 when it end with: || true #2977

ale5000-git opened this issue May 4, 2024 · 3 comments · May be fixed by #3114

Comments

@ale5000-git
Copy link

For bugs

Here's a snippet or screenshot that shows the problem:

#!/bin/sh
set -e

foo && bar || true

Here's what shellcheck currently says:

foo && bar || true
    ^-- [SC2015](https://www.shellcheck.net/wiki/SC2015) (info): Note that A && B || C is not if-then-else. C may run when A is true.

Here's what I wanted or expected to see:

Nothing, the || true is used to ignore return codes so even if it get executed when A is true it doesn't matter.

@Jakub-Kapusta
Copy link

Jakub-Kapusta commented Oct 4, 2024

Workaround: Currently this can be bypassed by using command groupings.

#!/bin/sh
set -e

# $? will be 0
{ foo && bar; } || :

@wileyhy
Copy link

wileyhy commented Oct 4, 2024 via email

@Jakub-Kapusta
Copy link

Thanks for the link, very insightful.

@Flu Flu linked a pull request Jan 7, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants