On Sun, Sep 14, 2025 at 02:25:28PM +1000, Bash development wrote:
> On Sat, Sep 13, 2025 at 11:06:03PM -0400, Lawrence Velázquez wrote:
> > On Sat, Sep 13, 2025, at 6:12 AM, Duncan Roe via Bug reports for the GNU 
> > Bourne Again SHell wrote:
> > > On Fri, Sep 12, 2025 at 11:23:17PM -0400, Lawrence Velázquez wrote:
> > >> On Fri, Sep 12, 2025, at 10:56 PM, Duncan Roe via Bug reports for the 
> > >> GNU Bourne Again SHell wrote:
> > >> > Bash is not recognising U+00A0 as whitespace. What to do about it, if 
> > >> > anything?
> > >>
> > >> I believe bash mostly tokenizes on <blank> characters.  Is U+00A0
> > >> considered a <blank> in your locale?
> > >>
> > >> --
> > >> vq
> > >>
> > > It certainly *renders* as a space.
> > > Other than that, I'm not sure I understand your question.
> >
> > I was asking whether your locale specifies U+00A0 as belonging to
> > the "blank" character class.  Greg demonstrated how to see that:
> >
> >     $ locale
> >     LANG="en_US.UTF-8"
> >     LC_COLLATE="en_US.UTF-8"
> >     LC_CTYPE="en_US.UTF-8"
> >     LC_MESSAGES="en_US.UTF-8"
> >     LC_MONETARY="en_US.UTF-8"
> >     LC_NUMERIC="en_US.UTF-8"
> >     LC_TIME="en_US.UTF-8"
> >     LC_ALL=
> >     $ [[ $'\uA0' = [[:blank:]] ]]; echo "$?"
> >     0
> >
> > --
> > vq
> >
> $? = 1
> 
> Cheers ... Duncan.
> 
Sorry, my bad. I should have done the test as you posted
(default LC_COLLATE=C on this system):-

$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE=en_US.UTF-8
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
$ [[ $'\u20' = [[:blank:]] ]]; echo "$?"
0
$    if [[ -z "" ]] then
>       echo hello
>    fi
-bash:  : command not found

Cheers ... Duncan.

Reply via email to