在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