In the bash manpage, the "case" command is documented in the usual
opaque ;-) way:

       case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac
              A  case  command first expands word, and tries to match
it against each pattern in turn, using the
              same matching rules as for pathname  expansion  (see
Pathname  Expansion  below).....

Close reading of the manpage will reveal how the expansion and pattern
matching work.
(NB:  the "star" (*) characters in the pattern are NOT quoted.)

BTW, the "case" command is inherited from the original Bourne shell.
Bash also supports regular expression matching with the =~ operator;
you could rewrite the pattern-matching part of pathmunge as:

if [[ ! ":$PATH;' =~ ":$1:" ]] ; then
  # append or prepend, as above
fi

but (IIRC) that code would NOT work with a POSIX shell.

- Steve



> Date: Tue, 30 Oct 2012 11:46:41 -0400
> From: John Abreau <abre...@gmail.com>
> To: Jerry Feldman <g...@blu.org>
> Cc: discuss@blu.org
> Subject: Re: [Discuss] What the use of .bashrc
> Message-ID:
>         <cafv2jcatmnwtjfc7jiof2_eph+lvovnrmf31vflthxtshcw...@mail.gmail.com>
> Content-Type: text/plain; charset=ISO-8859-1
>
> I just looked for that in the bash manpage, and i can't find anything
> describing
> that behavior. Can you highlight where you discovered that?
>
>
>
> On Tue, Oct 30, 2012 at 11:07 AM, Jerry Feldman <g...@blu.org> wrote:
>> On 10/30/2012 10:58 AM, j...@polcari.com wrote:
>>>   Looks to me like the first test only tests if $1 is not at the end of 
>>> $PATHor am I missing something?    ----- Original Message -----From: 
>>> &quot;Jerry Feldman&quot; >;g...@blu.org
>>>
>> No, it tests is $1 exists in $PATH.
>> I really hate bash pattern matching because I have to read the manual
>> every time I use them.
>> in this case '*:"$1":*' looks for $1 anywhere in $PATH.
>>
>> --
>> Jerry Feldman <g...@blu.org>
>> Boston Linux and Unix
>> PGP key id:3BC1EB90
>> PGP Key fingerprint: 49E2 C52A FC5A A31F 8D66  C0AF 7CEA 30FC 3BC1 EB90
>>
>>
>>
>> _______________________________________________
>> Discuss mailing list
>> Discuss@blu.org
>> http://lists.blu.org/mailman/listinfo/discuss
>>
>
>
>
> --
> John Abreau / Executive Director, Boston Linux & Unix
> PGP KeyID: 32A492D8 / Email: abre...@gmail.com
> PGP FP: 7834 AEC2 EFA3 565C A4B6  9BA4 0ACB AD85 32A4 92D8
>
_______________________________________________
Discuss mailing list
Discuss@blu.org
http://lists.blu.org/mailman/listinfo/discuss

Reply via email to