#1609·direnv

支持扩展的变量扩展集

作者: AZMCode创建于 2026年8月3日更新于 2026年8月3日
标签Feature

您的功能请求是否与问题有关?请描述。 我正在开发一个项目,其中包含 Docker compose。 尽管我了解 Docker-compose 具有加载 .env 文件的能力,但我希望能够在我的 Docker 容器和主机之间共享一组环境变量。 因此,在我的 .envrc 中,我使用了与 Docker compose 文件相同的 .env 文件。 遗憾的是,direnv 支持的变量扩展非常有限。 甚至比 Docker compose 支持的限制集还要少。 因此,我使用这些变量扩展的能力受到限制。 事实上,由于 compose 优先从 shell 环境中加载 .env 文件,如果我确实加载了这些环境变量,则启动的容器上这些变量将会被破坏。 请描述您希望的解决方案 添加扩展的变量扩展。 我认为一个最小的集合应该是 Docker-compose 的集合,即根据我写作时的了解,该集合如下:

$VAR / ${VAR} 基本替换
${VAR:-default} 如果未设置或为空,则使用默认值
${VAR-default} 如果未设置,则使用默认值
${VAR:?error} 如果未设置或为空,则报错
${VAR?error} 如果未设置,则报错
${VAR:+value} 如果设置且不为空,则使用值
${VAR+value} 如果设置(即使为空),则使用值