环境加载器(Env Loader)
v1.0.0Shell-agnostic 的 .env 文件加载器。生成一个兼容 POSIX 的脚本,以安全地从 .env 文件中加载环境变量,支持 bash、zsh、dash 和 ash。使用场景:部署依赖 .env 文件的应用程序,解决由于 shell 差异引起的环境变量问题,或编写需要在多个 shell 环境中工作的部署脚本。
运行时依赖
安装命令
点击复制技能文档
Env Loader 生成并验证兼容 POSIX 的 .env 加载脚本,确保在 bash、zsh、dash 和 ash 中的一致性。 问题 source .env 在不同 shell 中表现不同: zsh:正确地去除值中的引号 bash/dash:将引号保留为值的一部分 ("value" → 包括引号) 所有 shell:source 只赋值,不导出 —— 子进程无法看到这些变量 这会导致部署时出现无声失败,当 .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 变量名。 关键设计原则 仅使用 POSIX 语法 —— 无 bash 特性,无 zsh 特性,适用于 dash/ash 手动解析 key=value —— 直接 source 或 eval .env 文件 显式去除引号 —— 一致地去除单引号或双引号 关键验证 —— 只允许 [A-Za-z_][A-Za-z0-9_]* 作为变量名 显式导出 —— 每个解析的变量都导出给子进程 参考 请参阅 references/env-pitfalls.md 以获取有关 shell 特定 .env 解析陷阱的详细目录。 GitHub 和 API、CLI 等技术术语保持不变。