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
12 Angry Men .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.
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.