o*
here matches ooo
but not
oscar
.grep 'foo*'
when wanting to match food
and foosball
,
but not mofo
or keyfob
.
grep '^foo'
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.
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]*'
.
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.