分类:
2009-04-08 15:26:17
Environment variables are passed to programs by the or the graphical shell. Though there are a number of environment variables that only affect the command line or graphical shell itself (such as PATH or HOME), there are also several that directly affect how execute.
Ruby has direct access to environment variables via the ENV . Environment variables can be directly read or written to by using the with a . Note that writing to environment variables will only have an effect on child processes of the Ruby script. Other invocations of the script will not see the changes in environment variables.
#!/usr/bin/env ruby
# Print some variables
puts ENV['PATH']
puts ENV['EDITOR']
# Change a variable then launch a new program
ENV['EDITOR'] = 'gedit'
`cheat environment_variables --add`
To pass environment variables to Ruby, simply set that environment variable in the shell. This varies slightly between operating systems, but the concepts remain the same.
To set an environment variable on the Windows command prompt, use the set command.
> set TEST=value
To set an environment variable on Linux or OS X, use the export command. Though environment variables are a normal part of the Bash shell, only variables that have been exported will be available in programs launched by the Bash shell.
$ export TEST=value
Alternatively, if the environment variable will only be used by the program about to be run, you can define any environment variables before the name of the command. The environment variable will be passed onto the program as its run, but not saved. Any further invocations of the program will not have this environment variable set.
$ EDITOR=gedit cheat environment_variables --add
There are a number of environment variables that effect how the Ruby interpreter acts.