1
0
mirror of https://github.com/koalaman/shellcheck.git synced 2025-03-12 12:35:25 -07:00

Created SC2305 (markdown)

Vidar Holen 2021-08-22 20:14:10 -07:00
parent ba18e92461
commit 5f3998712d

29
SC2305.md Normal file

@ -0,0 +1,29 @@
## Quote regex argument to expr to avoid it expanding as a glob.
### Problematic code:
```sh
expr "$input" : [0-9]*
```
### Correct code:
```sh
expr "$input" : "[0-9]*"
```
### Rationale:
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.
### Exceptions:
None
### Related resources:
* Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!