给定一个 YAML 文件example.yaml
:
services:
api:
image: myImage
ports:
- 8080:8080
environment:
- "TEST_STRING_WITH_SPACE=?"
TEST_STRING_WITH_SPACE
我需要用多个单词的字符串参数替换环境变量值。预期是这样的:
services:
api:
image: myImage
ports:
- 8080:8080
environment:
- "TEST_STRING_WITH_SPACE=With Space"
我正在使用的yq
工具,版本:
yq (https://github.com/mikefarah/yq/) version v4.44.5
当我尝试用没有空格的字符串设置值时,它有效:
yq '.services.api.environment[0] = "TEST_STRING_WITH_SPACE='$(echo "WithoutSpace")'"' example.yaml
但是,当我尝试使用带空格的字符串设置值时,它不起作用:
yq '.services.api.environment[0] = "TEST_STRING_WITH_SPACE='$(echo "With Space")'"' example.yaml
收到错误:
错误:1:32:无效输入文本“TEST_STRING_WIT...”
怎么解决?