On Thu, Feb 12, 2009 at 06:53:02PM -0600, Ivan Richwalski wrote:
> David Korn wrote:
>> cc: John.Zolnowsky at Sun.COM
>> Subject: Re: Re: [ksh93-integration-discuss] Non-existent directories in  
>> $PATH and stat caching
>> --------
>>
>>>        Once a utility has been searched for and found (either as a
>>>         result of this specific search or as part of an unspecified
>>>         shell startup activity), an implementation may remember its
>>>         location and need not search for the utility again unless the
>>>         PATH variable has been the subject of an assignment.  If the
>>>         remembered location fails for a subsequent invocation, the
>>>         shell shall repeat the search to find the new location of the
>>>         utility, if any.
>>>
>>
>> Had the lookup for this script been successful with the shell
>> previously?  If so then you are correct that the shell
>> must do the rescan and this is a bug.  Otherwise, this sentence
>> does not apply.
>
> No, ~/bin had been added to $PATH before ~/bin existed, and the scripts  
> are unique names not found elsewhere in $PATH.  After setting $PATH the 
> first time, the stat on "/home/ivan/bin" fails, so ksh93 never attempts 
> looking for "/home/ivan/bin/foo".
>
> I also found that PATH=$PATH wasn't enough to get ksh93 to notice that  
> /home/ivan/bin now exists.  I had to change PATH, either by adding a new  
> directory or by resetting it like this:
>     I=$PATH
>     PATH=/bin
>     PATH=$I

"hash -r" seems to do the trick.

Venky.

Reply via email to