Boston Linux & UNIX was originally founded in 1994 as part of The Boston Computer Society. We meet on the third Wednesday of each month at the Massachusetts Institute of Technology, in Building E51.

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss] What the use of .bashrc



Note that it was not my sleight of hand. The pathmunge() function occurs
in /etc/bashrc and in /etc/profile.  I generally have become very
knowledgeable on both expressions and variable substitutions and pattern
matching since I have had to write a fairly extensive script application
(updated to use TCL). But, even way back in Digital days I've had to
write some fairly complex scripts, or at least debug them. It used to
drive me crazy when a standard would change the behavior of a script
that had been working for years.

On 10/31/2012 08:28 AM, John Abreau wrote:
> It was just a simple oversight on my part. I failed to notice that the case statement 
> wrapped $PATH in colons, and as a result I mistakenly thought Jerry was claiming 
> that bash exhibits a magical and non-intuitive special case for globbing on the PATH 
> variable. But it wasn't a magical special case, just a bit of sleight-of-hand at the start.
>
>
>
> Sent from my iPad
>
> On Oct 31, 2012, at 8:12 AM, Joe Polcari <joe at polcari.com> wrote:
>
>> If bash can do it, it's in this guide, my bash bible:
>> http://www.tldp.org/LDP/abs/abs-guide.pdf
>>
>>
>>
>>
>>
>> Sent from my iPad
>>
>> On Oct 30, 2012, at 12:08 PM, Jerry Feldman <gaf at blu.org> wrote:
>>
>>> I generally use "Learning the BASH Shell" as a reference, but here is
>>> the definition:
>>> http://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion
>>>
>>>
>>>
>>> On 10/30/2012 11:46 AM, John Abreau wrote:
>>>> 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: &quot;Jerry Feldman&quot; >;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.
>>>>
>>> Look at expressions. A path is delimited by colons. So, this means look
>>> for $1 anywhere in a path. You can easily test it. I have not looked at
>>> some of the boundary cases, but they appear to work since I've been
>>> using this for years.
>>>
>>>   case ":${PATH}:" in
>>>       *:"$1":*)
>>>           ;;
>>> Note that $PATH is prepended and appended by ':'. So, assume a PATH is
>>> $HOME/bin/usr/bin, the pattern is ":$HOME/bin:/usr/bin:"
>>> So, it will look for $1 anywhere between 2 colons.
>>> http://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion
>>>
>>>
>>> -- 
>>> 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
>> _______________________________________________
>> Discuss mailing list
>> Discuss at blu.org
>> http://lists.blu.org/mailman/listinfo/discuss


-- 
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





BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org