Created SC3015 (markdown)

Vidar Holen
2021-08-17 22:08:13 -07:00
parent 4e7be0845b
commit 091fd0244a

29
SC3015.md Normal file

@@ -0,0 +1,29 @@
## In POSIX sh, =~ regex matching is undefined.
### Problematic code:
```sh
[ "$var" =~ .*foo[0-9]* ]
```
### Correct code:
```sh
expr "$var" : ".*foo[0-9]*" > /dev/null
```
### Rationale:
You are using `=~` in a script declared to be compatible with POSIX sh or Dash.
`=~` is not a POSIX operator and is unlikely to outside `[[ ]]` in Bash and Ksh.
Use `expr`'s `:` operator instead.
### Exceptions:
None
### Related resources:
* Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!