diff --git a/SC2074.md b/SC2074.md new file mode 100644 index 0000000..c1ec533 --- /dev/null +++ b/SC2074.md @@ -0,0 +1,22 @@ +## Can't use `=~` in `[ ]`. Use `[[..]]` instead. + +### Problematic code: + +```sh +[ "$input" =~ DOC[0-9]*\.txt ] && echo "match" +``` + +### Correct code: + +```sh +[[ "$input" =~ DOC[0-9]*\.txt ]] && echo "match" +``` +### Rationale: + +`=~` only works in `[[ .. ]]` tests. It does not work with `test` or `[` in any shell. + +If you're targeting POSIX `sh`, rewrite in terms of `case` or `grep` instead. + +### Exceptions: + +None. \ No newline at end of file