You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何读取文件行内容并在Ruby中创建赋值对应变量

问题

需要复用存储了单行配置内容的文本文件,文件内容示例如下:

export NODE_CODE="mio12"

需要在Ruby程序中,按照文本文件里的变量定义,创建对应变量并完成赋值。

实现方案

针对这种固定格式的单行配置,直接做字符串解析提取键值即可,不需要引入额外依赖,参考代码如下:

# 读取配置文件,替换成你实际的配置文件路径
config_content = File.read('./config.env').strip

# 匹配export 变量名="变量值"的格式
if match_result = config_content.match(/^export\s+(\w+)="([^"]*)"$/)
  var_name = match_result[1]
  var_value = match_result[2]

  # 按需选一种赋值方式即可
  # 1. 存入环境变量,最通用的做法,和shell里export的行为对齐
  ENV[var_name] = var_value
  # 调用方式:puts ENV['NODE_CODE']  => 输出 mio12

  # 2. 创建当前作用域的局部变量
  binding.local_variable_set(var_name.downcase.to_sym, var_value)
  # 调用方式:puts node_code  => 输出 mio12

  # 3. 创建全局变量,不受作用域限制
  # eval("$#{var_name.downcase} = var_value")
  # 调用方式:puts $node_code  => 输出 mio12
end

补充说明

  • 如果后续配置文件扩展为多行多个export变量,只需要把读取内容改成逐行遍历,每一行套用上面的正则匹配逻辑即可,核心代码不需要改动
  • 如果配置值本身包含转义双引号,只需要调整正则里值部分的捕获规则,适配转义场景即可
  • 严禁直接使用eval执行读取到的完整配置行,避免配置文件被篡改后触发任意代码执行的安全漏洞

内容的提问来源于stack exchange,提问作者Juanse Cora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 01:25:06