在文件路径中使用环境变量

时间:2015-08-24 09:38:22

标签: ruby

我想在以下代码中使用输入path

File.exists?(File.expand_path(path))

我可以在path中使用环境变量,语法应该是什么?

2 个答案:

答案 0 :(得分:2)

要扩展环境变量,您应该自己动手:

def expand_env(str)
  str.gsub(/\$([a-zA-Z_][a-zA-Z0-9_]*)|\${\g<1>}|%\g<1>%/) { ENV[$1] }
end

expand_env("${SHELL}:%USER%:$PAGER")
# => "/bin/bash:amadan:less"

(支持Windows风格和Unix风格,但只支持基本替换,而不是bash能够实现的任何疯狂的东西)。

答案 1 :(得分:1)

为了便于携带,最好使用File::joinENV哈希:

File.exists?( File.join(ENV['MY_VAR'],'bin') )