Accessing Ruby Environment Variables

Environment variables are variables passed to programs by the command line 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 Ruby scripts execute.

Accessing Environment Variables from Ruby

Ruby has direct access to environment variables via the ENV hash. Environment variables can be directly read or written to by using the index operator with a string argument. 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`

Passing Environment Variables to Ruby

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 beenexported 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

Environment Variables Used by Ruby

There are a number of environment variables that effect how the Ruby interpreter acts.

  • RUBYOPT - Any command line switches here will be added to any switches specified on the command line.
  • RUBYPATH - When used with the -S switch on the command line, the paths listed inRUBYPATH will be added to the paths searched when looking for Ruby scripts. The paths in RUBYPATH precede the paths listed in PATH.
  • RUBYLIB - The list of paths here will be added to the list of paths Ruby uses to search for libraries included in the program with the require method. The paths in RUBYLIB will be searched before other directories.

 

 

link: 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值