Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #15781 > unrolled thread

Re: possible bug in Bash 5.0

Started byEli Schwartz <eschwartz@archlinux.org>
First post2019-12-25 23:31 -0500
Last post2019-12-25 23:31 -0500
Articles 1 — 1 participant

Back to article view | Back to gnu.bash.bug

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: possible bug in Bash 5.0 Eli Schwartz <eschwartz@archlinux.org> - 2019-12-25 23:31 -0500

#15781 — Re: possible bug in Bash 5.0

FromEli Schwartz <eschwartz@archlinux.org>
Date2019-12-25 23:31 -0500
SubjectRe: possible bug in Bash 5.0
Message-ID<mailman.1440.1577334721.1979.bug-bash@gnu.org>

[Multipart message — attachments visible in raw view] — view raw

On 12/25/19 5:41 PM, Xin Wu wrote:
> Hi,
> 
> I found the single-bracket [ ... ] and double-bracket [[ ... ]] behave
> differently for string comparison in the follow simple Bash-script.
> 
> # comma (,) is before two (2) in ASCII
> a=,rst
> b=2rst
> if [ "$a" \> "$b" ]; then
>   echo "single-bracket"
> fi
> if [[ "$a" > "$b" ]]; then
>   echo "double-bracket"
> fi
> 
> According to some web pages I was expecting that single-bracket and
> double-bracket should give same result. I'm not a Bash-expert, therefore
> I'm not sure whether this is a real bug in Bash 5.0.
> 
> Merry Christmas!
> 
> Xin
> 
> PS: the web pages are:
> 
> * http://tldp.org/LDP/abs/html/comparison-ops.html
> * http://tldp.org/LDP/abs/html/refcards.html
> * http://mywiki.wooledge.org/BashFAQ/031

On the last of these three web pages is the note:

"As of bash 4.1, string comparisons using < or > respect the current
locale when done in [[, but not in [ or test. In fact, [ and test have
never used locale collating order even though past man pages said they
did. Bash versions prior to 4.1 do not use locale collating order for [[
either."

Try using the C locale, for example: LC_COLLATE=C

Then see what the double brackets does.

-- 
Eli Schwartz
Arch Linux Bug Wrangler and Trusted User

[toc] | [standalone]


Back to top | Article view | gnu.bash.bug


csiph-web