有没有办法从 Linux 命令行 return 环境变量 RAILS_ENV 的值?

Is there a way to return the value of the environment variable RAILS_ENV from the Linux command line?

在Linux中,可以通过命令echo $PATH找到$PATH环境变量的值。在Rails中,RAILS_ENV(以及类似的RACK_ENV)是一个环境变量,其值如"development"和"production"。但是在命令行上,echo RAILS_ENV returns 无用的字符串 RAILS_ENV (如您所料)和 echo $RAILS_ENV returns 什么都没有(大概是因为那不是调用环境变量)。我也试过 env RAILS_ENV 和变体。我是语法错误还是什么?

我认为基本上环境变量直到 Rails 是 运行 才存在吗?好吧...我尝试在一个终端中 运行ning 一个 Rails 服务器,然后打开另一个,然后重复上述命令;没有骰子。

或者是 Linux 或者我的 shell 没有跟踪这个环境变量的问题?但是......作为一个环境变量,它不是必须的吗?我尝试在 env 命令的输出中查找它,但没有。

是否有可能发现 RAILS_ENV 环境变量的值的唯一方法是通过 Rails 本身,例如,通过调用 Rails.env?

更新:this helpful discussion 给出命令 rails r "puts Rails.env",但我正在寻找一个不调用 Rails 本身的命令。

echo $RAILS_ENV 是对的。它可能未设置,因此默认为开发。这是在 Rails 代码库中完成的。

$ export RAILS_ENV=development
$ echo $RAILS_ENV #=> development

在另一个控制台中

# In a new window
$ echo $RAILS_ENV
$ rails runner "puts Rails.env" #=> development
$ RAILS_ENV=test rails runner "puts Rails.env" #=> test

没有设置RAILS_ENV变量,到rails默认开发

这是 Bash 中的等价物。

if [ -z "$RAILS_ENV" ]; then
  export RAILS_ENV="development";
fi
echo $RAILS_ENV