Oi vey.
Is that the only thing that will be affected by shopt -s compat31?
Or perhaps that shopt needs to be a bit more specific.
> So your example would have worked with "shopt -s compat31".
>
>From the file COMPAT:
33. Bash-3.2 adopts the convention used by other string and pattern matching
operators for the `[[' compound command, and matches any quoted portion
of the right-hand-side argument to the =~ operator as a string rather
than a regular expression.
...
Other string operators? What other ones operate this way?
This is what I'm referring to:
a="hi"
if [[ "hi" == "$a" ]]; then echo "this matches"; fi
if [[ 'hi' == '$a' ]] then echo "this doesn't"; fi
I would prefer this work:
a="h."
if [[ "hi" =~ "$a" ]];....
That would make "sense" though I'm not sure what other string operators we
are trying to be consistent with.
Foolish consistency is the hobgoblin of small minds.