Clifford Heath
7/31/2006 5:48:00 AM
M. Edward (Ed) Borasky wrote:
> On Gentoo Linux:
Yes, that's the way it should work. Same on Debian with 1.8.4
It's a bug on ruby/windows (I haven't tried 1.8.4), because:
$ export FOO=
$ cmd
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
prompt>set FOO
FOO=
prompt>set BAR
Environment variable BAR not defined
So Windows, like *nix, knows that the environment variable is
set and that it has an empty value. I need to detect this in
Ruby the same as on Linux.
> Is this legitimate? I've never seen anyone use this construct ("FOO= ")
It's a shorthand way of saying "(export FOO=; command ...)", i.e.
export a value for an environment variable just for this command.
> What happens when you do FOO='' ?
Exactly the same as not using '', as you'd expect.
> What does ruby -e 'p "" ' do?
""
just as expected, of course.
>> I'm not sure ... is this construct useful to you in some way? Setting
>> an environment variable to an empty string and reading it in Ruby?
Absolutely. The variable provides an alternative to an internal default
value, and if it's set, I want to use it by saying (ENV["FOO"] || 'default')
Works on Linux, breaks on Windows, contrary to Window's own rules.
Clifford Heath.