Am Sonntag 02 Mai 2010 22:26:43 schrieb Brandon S. Allbery KF8NH: > On May 2, 2010, at 05:33 , Limestraël wrote: > > Yes, it's weird, but it works! Thanks. > > It's normal, actually. "~" is only understood by the shell, so unless > the shell is invoked to expand it a program will fail to understand > it.
If the default shell is bash and the PATH is set and exported in ~/.bashrc, it should work with '~' unless the string is quoted, shouldn't it? bash expands the tildes when the value is assigned to PATH, I think. That would explain why it's a relatively rare breakage. > Additionally, some shells only expand "~" at the beginning of a > "word", so if you `export PATH=~/foo:~/bar' the second "~" won't be > expanded. (bash will expand it after a colon, so that should work.) Do you perchance know which shells would expand only the first tilde? > If you quote the string, "~" won't be expanded (`export PATH="~/foo"' > won't expand the "~"). > > A way to check this: type `env PATH'. Shouldn't that be echo $PATH or env | grep --regexp $PATH ? > If the result contains a "~", > you need to look at how you're setting PATH to make sure "~" isn't > being quoted. If the result contains a tilde, you're already hosed because System.Directory.findExecutable doesn't do tilde-expansion before calling doesFileExist. _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
