[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Inconsistence when checking if a pattern is quoted or not for `==' a
From: |
Clark J. Wang |
Subject: |
Re: Inconsistence when checking if a pattern is quoted or not for `==' and `=~' in [[ ]] |
Date: |
Thu, 17 Feb 2011 22:56:21 +0800 |
On Thu, Feb 17, 2011 at 7:09 PM, Clark J. Wang <dearvoid@gmail.com> wrote:
> See following script output:
>
> bash-4.2# cat quoted-pattern.sh
> [[ .a == \.a* ]] && echo 1 # not quoted
> [[ aa =~ \.a* ]] && echo 2 # quoted
>
> [[ aa =~ \a. ]] && echo 3 # not quoted
> [[ aa =~ \a\. ]] && echo 4 # quoted
> bash-4.2# bash42 quoted-pattern.sh
> 1
> 3
> bash-4.2#
>
> From my understanding 1 2 3 4 should all be printed out.
>
>
The point is: ``Any part of the pattern may be quoted to force it to be
matched as a string.'' And backslash is one of bash's quoting chars. But
in my examples, a pattern with `\' in it sometimes is considered to be
quoted and sometimes unquoted. It's not clear to me what's the exact rule to
tell if a pattern is quoted or not.
> --
> Clark
>
>