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

如何在Nushell中从标准.env键值对文件加载环境变量?

在Nushell中加载标准.env文件的方法

要在Nushell中加载标准格式的.env文件(保持文件兼容性,无需修改为Nu脚本),可以通过以下方案实现:

核心实现思路

读取.env文件的每一行,过滤空行和注释行,拆分键值对,去除值两端的引号后,设置为Nushell环境变量。

单行命令快速加载

如果只是临时加载,直接运行以下命令(替换./.env为你的.env文件路径):

open ./.env | lines | where {|line| not ($line starts_with "#" or $line is empty) } | each {|line|
  let split_idx = $line index-of "="
  let key = $line[0..$split_idx-1]
  let value = $line[$split_idx+1..-1] | str trim '"' | str trim "'"
  $env."($key)" = $value
}

封装为可复用函数

如果需要频繁使用,建议将逻辑封装成函数,添加到你的Nushell配置文件(比如config.nu)中:

def load-env [path: string] {
  open $path | lines | where {|line| not ($line starts_with "#" or $line is empty) } | each {|line|
    # 兼容值中包含等号的场景(如PASSWORD="abc=123")
    let split_idx = $line index-of "="
    let key = $line[0..$split_idx-1]
    let value = $line[$split_idx+1..-1] | str trim '"' | str trim "'"
    $env."($key)" = $value
  }
}

之后即可通过load-env ./.env命令快速加载指定的.env文件。

功能说明

  • 支持处理值中包含等号的场景,避免拆分错误
  • 自动去除值两端的单/双引号,匹配.env文件的常见格式
  • 跳过空行和#开头的注释行,保留标准.env语法
  • 完全保留.env文件原始结构,不影响其他Shell或工具的兼容性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 15:16:07