Re: quote removal issues within character class

2019-11-08 Thread Oğuz
is correct, as "foo" does not contain a ']' which would be required > to match there (quoting the ':' means there is no character class, > hence we have instead (the negation of) a char class containing '[' ':' > 'l' 'o' 'w' 'e' ';r' (and ':' again), preceded by anything, and > followed by ']' and

Re: quote removal issues within character class

2019-11-08 Thread Robert Elz
Date:Sat, 9 Nov 2019 00:50:52 +0300 From:=?UTF-8?B?T8SfdXo=?= Message-ID: These two | v=foo | echo ${v#[[:"lower":]]} | case foo in (*[![:"lower":]]*) echo bar; esac are because bash believes that the character class name must not be quoted (which is

quote removal issues within character class

2019-11-08 Thread Oğuz
v=foo echo ${v#[[:"lower":]]} should print oo, but it prints foo instead. This is reproducible on bash >4.4 Plus case foo in (*[![:"lower":]]*) echo bar; esac prints bar, while case foo in (*[![":lower":]]*) echo bar; esac doesn't print anything. And this is only reproducible on bash >5.0