
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.