koalaman / shellcheck Public
SC3015
Joachim Ansorg edited this page Nov 15, 2021
·
2 revisions
In POSIX sh, =~ regex matching is undefined.
Problematic code:
[ "$var" =~ .*foo[0-9]* ]Correct code:
expr "$var" : ".*foo[0-9]*" > /dev/nullRationale:
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!