expr "$input" : [0-9]*
expr "$input" : "[0-9]*"
ShellCheck found an expr
command using :
to
match a regex, but the regex is not quoted and therefore being treated
as a glob.
This means that if the problematic code is ever executed in a
directory containing a file matching [0-9]*
, such as
2021-reports
or 12 Angry Men [1957].mkv
, it
will be replaced be replaced and cause the command to error or
incorrectly match.
The regex should be quoted to avoid this, like in the correct example.
None
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.