-----Original Message----- > From: cygwin-ow...@cygwin.com [mailto:cygwin-ow...@cygwin.com] On Behalf Of > Eric Blake > Sent: Wednesday, May 19, 2010 2:51 PM > To: cygwin@cygwin.com > Subject: Re: bash - command - PATH question > > On 05/19/2010 01:42 PM, Rockefeller, Harry wrote: > > $ type mysvn > > mysvn is hashed (./mysvn) > > There's your problem. Bash remembers the hashed location of where it last > found the command, but that location is relative. You either need to disable > bash's hashing, or force it to re-evaluate its hash as soon as you are in a > different directory. 'shopt -s checkhash'. > > > $ echo $PATH > > [gives a very long path. Yes, ./ and ./bin are present but are the > > only relative paths in the listing.] > > Obligatory comments about having '.' in your PATH being a security hole, > opening the door for trojan horse applications. (Well, I do it, but only as > the LAST item in my PATH, so that any application I am likely to run occurs > earlier in the PATH). But ./bin? Seriously, change your path to call out an > absolute path of ~/bin instead of using ./bin and relying on the first > invocation being from ~. That way, bash will hash the absolute name in the > first place.
> At which point, this is no longer a cygwin-specific question - you would get > the same behavior on Linux. Thanks for your help in tracking this down. I found out that ./ and ./bin were being prepended to PATH by Mortens Cygwin X-Launcher. FWIW, ./ is in the default PATH in Mortens Cygwin X-Launcher. I removed them from there and added "export PATH=$PATH:~/bin/:./bin/:./" to ~/.bash_login. Everything began working correctly afterward. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple