From: Clifford Heath Date: 2006-07-31T14:50:10+09:00 Subject: Re: Environment variables with empty value missing from ENV? 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.