【问题标题】:An env. variable isn't nil, but in ruby it's nil:一个环境。变量不是 nil,但在 ruby​​ 中它是 nil:
【发布时间】:2017-08-30 09:24:24
【问题描述】:

一个环境。变量不是 nil,但在 ruby​​ 中它是 nil:

my_comp% irb
irb(main):001:0> ENV["my_var123"]
=> nil

my_comp% echo $my_var123
some_value:fdsfdsfdsfds

为什么?

【问题讨论】:

  • export吗? export my_var123; irb
  • @Ryan 如果不是,如何通过echo $my_var123 看到它?
  • @Jily 这是一个shell变量,但不是环境变量。
  • 您是否 1000% 确定它是环境变量而不是其他类型的变量,例如 shell 变量或局部变量(如果您的 shell 支持这样的东西)?您使用什么测试来确定它是环境变量而不是其他类型的变量?你用的是什么外壳?你的 shell 有哪些类型的变量?

标签: ruby linux environment-variables


【解决方案1】:

echo $my_var123check 与当前环境无关:

$ foo=bar
$ echo $foo
#⇒ bar
$ env|grep foo
$

而 ruby​​ 中的 ENV 派生 当前的 shell 环境。更新环境,使用export

$ export foo=bar
$ echo $foo
#⇒ bar
$ env|grep foo
#⇒ foo=bar

【讨论】:

  • 但是在 /etc/environment 中所有的变量都没有导出并且都是可见的。
  • 那又怎样?登录时,在激活 PAM 堆栈期间,pam_env.so 读取 /etc/environment更新环境
  • 那为什么要在 /etc/environment 中调用“export”呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-06
  • 1970-01-01
  • 2021-05-25
相关资源
最近更新 更多