Env Loader

生成兼容 POSIX 的脚本,安全加载 .env 文件中的环境变量。

已扫描
适合谁
开发人员、运维工程师
不适合谁
普通用户、非技术背景人员
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @wuhaichao87/env-loader

Skill 说明

命令、参数、文件名以原文为准

Env Loader

生成并验证兼容 POSIX 的 .env 加载脚本,确保在 bash、zsh、dash 和 ash 等 shell 中行为一致。

解决的问题

source .env 在不同 shell 中的行为存在差异:

  • zsh:正确去除值中的引号
  • bash/dash:保留引号作为值的一部分("value" → 包含引号)
  • 所有 shellsource 仅赋值,不会 export — 子进程无法访问这些变量

这会导致部署时因 .env 文件包含引号值或特殊字符而出现无声失败。

使用方法

生成加载脚本

运行内置脚本或使用模板:

bash ~/.openclaw/skills/env-loader/scripts/generate-loader.sh /path/to/project

此命令将在目标目录中创建 load-env.sh

在部署脚本中使用

# 不要使用:source .env
# 改为使用:
. ./load-env.sh .env

验证现有 .env 文件

bash ~/.openclaw/skills/env-loader/scripts/validate-env.sh /path/to/.env

检查常见问题:未加引号的特殊字符、行内注释、非 POSIX 合法的变量名。

核心设计原则

  1. 仅使用 POSIX 语法 — 无 bash 特有语法,无 zsh 特有语法,兼容 dash/ash
  2. 手动解析 key=value — 永不直接 sourceeval .env 文件
  3. 显式去除引号 — 一致地移除外围单引号或双引号
  4. 变量名验证 — 仅允许 [A-Za-z_][A-Za-z0-9_]* 格式的变量名
  5. 显式导出 — 每个解析出的变量都会被 export,供子进程使用

参考资料

参见 references/env-pitfalls.md,获取关于 shell 特定 .env 解析陷阱的详细列表。

W
@wuhaichao87

已收录 1 个 Skill

相关推荐