mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-10-03 19:29:44 +08:00
Created SC2022 (markdown)
23
SC2022.md
Normal file
23
SC2022.md
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# Note that c* does not mean "c followed by anything" in regex.
|
||||||
|
|
||||||
|
### Problematic code:
|
||||||
|
|
||||||
|
grep 'foo*'
|
||||||
|
|
||||||
|
when wanting to match `food` and `foosball`, but not `mofo` or `keyfob`.
|
||||||
|
|
||||||
|
### Correct code:
|
||||||
|
|
||||||
|
grep '^foo'
|
||||||
|
|
||||||
|
### Rationale:
|
||||||
|
|
||||||
|
As a glob, `foo*` means "Any string starting with foo", e.g. `food` and `foosball`.
|
||||||
|
|
||||||
|
As a regular expression, "foo*" means "f followed by 1 or more o's, anywhere", e.g. "mofo" or "keyfob".
|
||||||
|
|
||||||
|
This construct is way more common as a glob than as a regex, so ShellCheck notifies you about it.
|
||||||
|
|
||||||
|
### Contraindications
|
||||||
|
|
||||||
|
If you're aware of the above, you can ignore this message. If you'd like shellcheck to be quiet, use a [[directive]] or `'fo[o]*'`.
|
Reference in New Issue
Block a user