环境变量优先级 (#1038)
WARNING
所有实验性功能都可能 随时 发生破坏性变更或被移除。我们强烈建议您不要在生产环境中使用这些功能,它们仅用于测试和收集反馈。
DANGER
本实验会破坏以下功能:
- 环境变量将优先于操作系统环境变量
INFO
要启用此实验,请设置环境变量:TASK_X_ENV_PRECEDENCE=1。查看我们的实验功能启用指南获取更多信息。
在此实验之前,操作系统变量优先级高于任务环境变量。本实验改变了优先级顺序,使任务环境变量优先于操作系统变量。
考虑以下示例:
yml
version: '3'
tasks:
default:
env:
KEY: 'other'
cmds:
- echo "$KEY"在此实验前运行 KEY=some task,输出会是 some;但在此实验后,输出将是 other。
如果仍需要获取操作系统变量,可使用模板函数 env,如下所示:{{env "OS_VAR"}}。
yml
version: '3'
tasks:
default:
env:
KEY: 'other'
cmds:
- echo "$KEY"
- echo {{env "KEY"}}运行 KEY=some task,输出将为 other 和 some。
与其他变量/环境变量类似,您也可以使用默认模板函数回退到给定值:
yml
MY_ENV: '{{.MY_ENV | default "fallback"}}'