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

Ivan.


Reply via email to