mirror of
https://github.com/koalaman/shellcheck.git
synced 2025-03-12 12:35:25 -07:00
Created SC2305 (markdown)
parent
ba18e92461
commit
5f3998712d
29
SC2305.md
Normal file
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!
|
Loading…
x
Reference in New Issue
Block a user