有没有办法读取环境变量的文件?
在bash中我有一个我可以使用的文件env.sh
env.sh
foo="bar"
bash文件
set -a source env.sh
这将允许我只使用foo,就好像我已经在ruby脚本中对它进行了删除.
解决方法
听起来你应该为用户/管理员提供一个文件示例来修改他们的个人环境,然后从中填充环境,同时避免将该文件包含在存储库中的敏感信息中.注意:每个文件的安全性将由文件所在的位置以及操作系统和服务器软件来解决.
如果是这种情况,那么您可以提供一个文件,其中包含您正在配置的程序的管理员/用户所需的事物类型的模板.
Ruby具有ENV常量,其作用类似于Hash并保存您正在使用的shell的环境.
例如,有一个名为environment.rb.sample的文件可以公开与任何人共享.它具有说明并保存用户可以自由修改的模板,并提供将文件复制到environment.rb的说明.示例文件如下所示:
# environment.rb.sample # Copy this file to environment.rb and change the name and password to your credentials ENV['temp_user_name'] = 'Foo Bar' ENV['temp_password'] = 'Dazz Kezz
# environment.rb ENV['temp_user_name'] = 'Joe Admin' ENV['temp_password'] = 'Super Secure Password'
加载它并使用它的文件只是一个Ruby文件,由软件的用户/管理员自由修改,看起来像这样,也是公开共享的.
# load_environment require './environment' puts ENV['temp_user_name'] puts ENV['temp_password']
这将加载文件并使用ENV作为应用程序的全局范围常量.
然后,文件权限由系统的用户/管理员管理,并像其系统上的任何其他敏感信息一样受到保护.敏感文件也应列在存储库的忽略机制中.永远不应该公开.