[Discuss] What the use of .bashrc

Steve Harris vsharris at gmail.com
Tue Oct 30 16:47:49 EDT 2012


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 <abreauj at gmail.com>
> To: Jerry Feldman <gaf at blu.org>
> Cc: discuss at blu.org
> Subject: Re: [Discuss] What the use of .bashrc
> Message-ID:
>         <CAFv2jcatMnWTJFC7JioF2_EPH+LVovNrmF31VfLTHXtSHcwHYg at 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 <gaf at blu.org> wrote:
>> On 10/30/2012 10:58 AM, joe at 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: "Jerry Feldman" >;gaf at 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 <gaf at 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 at blu.org
>> http://lists.blu.org/mailman/listinfo/discuss
>>
>
>
>
> --
> John Abreau / Executive Director, Boston Linux & Unix
> PGP KeyID: 32A492D8 / Email: abreauj at gmail.com
> PGP FP: 7834 AEC2 EFA3 565C A4B6  9BA4 0ACB AD85 32A4 92D8
>



More information about the Discuss mailing list