在 ruby 中使用 $ 和 ENV 访问环境变量

Accesing environment variables with $ and ENV in ruby

我正在尝试访问 ~/.bashrc 中设置的环境变量

我在~/.bashrc 中设置了

export testdata = <some path>

当然没有<>。 我可以补充一点,我也尝试添加

testdata=<some path>

到/etc/environment

当我还在的时候shell我可以做到

echo $testdata

结果为 在我的脚本中我可以做

puts ENV['testdata']

这将打印 到目前为止,一切都很好。但是我的另一个脚本不是我写的,其中有一行

if $testdata then
#some code
end

这应该只是在设置环境变量时执行代码。但是这段代码对我不起作用。只有当我用 ENV[] 替换 $ 时,代码才能正确执行。

这是预期的行为。 $var 是 Ruby 中的 global variable,而不是环境变量。如您所说,要访问环境变量,您需要使用 ENV['var']