mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-10-03 19:29:44 +08:00
Updated SC2055 (markdown)
@@ -22,13 +22,13 @@ fi
|
||||
|
||||
This is not a bash issue, but a simple, common logical mistake applicable to all languages.
|
||||
|
||||
`[[ $1 != foo || $1 != bar ]]` is always true:
|
||||
`[[ $1 != foo || $1 != bar ]]` is always true (when `foo != bar`):
|
||||
|
||||
* If `$1 = foo` then `$1 != bar` is true, so the statement is true.
|
||||
* If `$1 = bar` then `$1 != foo` is true, so the statement is true.
|
||||
* If `$1 = cow` then `$1 != foo` is true, so the statement is true.
|
||||
|
||||
`[[ $1 != foo && $1 != bar ]]` matches when `$1` is not `foo` and not `bar`:
|
||||
`[[ $1 != foo && $1 != bar ]]` matches when `$1` is neither `foo` nor `bar`:
|
||||
|
||||
* If `$1 = foo`, then `$1 != foo` is false, so the statement is false.
|
||||
* If `$1 = bar`, then `$1 != bar` is false, so the statement is false.
|
||||
@@ -38,4 +38,4 @@ This statement is identical to `! [[ $1 = foo || $1 = bar ]]`, which also works
|
||||
|
||||
### Exceptions
|
||||
|
||||
None.
|
||||
Rare.
|
Reference in New Issue
Block a user