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.
