是否有一种方法可以从Linux命令行返回环境变量Rails_env的值



在Linux中,您可以使用命令echo $PATH找到$PATH环境变量的值。在Rails中,RAILS_ENV(和类似的RACK_ENV)是一个具有"开发"one_answers"生产"等值的环境变量。但是在命令行上, echo RAILS_ENV返回了无用的字符串 RAILS_ENV(如您所期望的),并且echo $RAILS_ENV返回什么都没有返回(大概是因为那不是环境变量的称呼)。我还尝试了env RAILS_ENV和变体。我是错误的吗?

是什么?

我是正确的,认为基本上环境变量直到运行导轨才存在?好吧...我尝试在一个终端运行Rails Server,然后打开另一个终端,然后重复上述命令。没有骰子。

还是Linux或我的Shell不会跟踪此环境变量的问题?但是...不是一个环境变量吗?我尝试在env命令的输出中寻找它,并且它不在那里。

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

更新:此有用的讨论提供了命令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变量,将默认为开发

这是bash中的等效。

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

最新更新