如何查看环境变量?

时间:2014-07-10 20:14:02

标签: ruby-on-rails bash terminal environment-variables

我正在尝试连接到我的推送服务器但收到错误:

  

缺少客户端配置:请检查是否已配置密钥,密码和app_id。

我想查看我的环境变量,但在Stack Overflow上找不到任何明确的方法。

5 个答案:

答案 0 :(得分:20)

从命令行管理程序打印环境

正如其他答案所指出的那样,可以在命令行中使用/usr/bin/env/usr/bin/printenv来查看在启动Rails之前shell中的环境,或者在启动它之后的子shell中。例如:

  1. rails s RETURN
  2. CTRL-Z
  3. env RETURN
  4. fg RETURN
  5. 从视图层显示ENV

    在Ruby中,ENV是一个"类似哈希的"环境变量的访问者;它实际上是而不是哈希。只需键入ENVENV['foo'],您就可以轻松地从Rails控制台中反省出ENV,但有时您可能希望看到Rails在渲染过程中认为环境是什么。在这种情况下,您需要Rails debug helper。例如:

    # ERB
    <%= debug ENV.to_h.to_yaml %>
    
    # HAML
    = debug ENV.to_h.to_yaml
    

    调用#to_yaml来序列化ENV对象将使输出更容易阅读,但需要先将ENV转换为哈希或数组。您也可以在不链接的情况下调用debug ENV;它的眼睛就更难了。

答案 1 :(得分:8)

在rails控制台中使用命令ENV。这将返回您可以访问的环境值的哈希值。或者,您可以使用相同的命令从应用程序根路径访问环境变量,并且将返回格式化的变量。

答案 2 :(得分:8)

或者使用O / S shell,在Ubuntu中使用

printenv

答案 3 :(得分:1)

这两个命令都将打印到stdout您的环境变量:

env

printenv

答案 4 :(得分:0)

我还在视图层中使用了以下内容:

<% request.env.each do |key, value| %>
  <strong><%= key %></strong> => <%= value %><br/>
<% end %>

我发现调试由乘客/ nginx级别设置的env变量引起的问题非常有帮助,当我使用rails console时不会显示这些问题。