On 4/6/13 4:48 AM, Dan Douglas wrote:
> I couldn't find anything obvious in POSIX that implies which interpretation is
> correct. Assuming it's unspecified.
> 
> Bash (4.2.45) uniquely does interpret such escapes for [[, which makes me 
> think this test should say "no":
> 
>     x=\\x; if [[ x == $x ]]; then echo yes; else echo no; fi
> 
> bash: yes
> ksh:  no
> mksh: no
> zsh:  no
> 
> However, ksh93 (AJM 93v- 2013-03-17) is unique in that it flips the result
> depending on "[[ ]]" or "case..esac" (bug?), but otherwise it looks like a
> fairly random spread:
> 
>     x=\\x; case x in $x) echo yes;; *) echo no; esac

These two cases should not be different.  They undergo the same expansions,
except that the conditional command adds quote removal, which doesn't
matter in this case.  In both cases, you ask the pattern matching code
whether or not the string `x' matches the pattern `\x'.

You invoke the same pattern matching code on the same patterns, why would
you not get the same answer?

Chet
-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    c...@case.edu    http://cnswww.cns.cwru.edu/~chet/

Reply via email to