Azure Pipeline变量:无法给首个拼接字符串添加引号的问题
Azure Pipeline变量定义报错原因及解决方法
报错原因
你遇到的解析错误是YAML语法规则导致的:Azure Pipeline使用YAML解析变量配置,当你写c: "one"$(a)"not"$(b)时,YAML解析器会把"one"当作c的部分值,但后续的$(a)没有被包含在同一个字符串上下文里,会被误判为一个新的块映射键(YAML中键值对要求是键: 值的格式)。由于$(a)不符合合法键的格式,且没有对应的冒号和值,解析器就抛出了"While parsing a block mapping, did not find expected key."的错误。
正确写法
要给首个字符串添加引号同时避免解析错误,只需将整个变量值用双引号包裹,这样既可以包含带特殊字符的首个字符串,也能让Azure Pipeline正常解析变量替换:
variables: a: "monkey" b: "donkey" c: "one$(a)not$(b)"
如果后续需要给首个字符串添加冒号等特殊字符,直接写在双引号内即可,比如:
variables: a: "monkey" b: "donkey" c: "one:test$(a)not$(b)"
最终会生成one:testmonkeynotdonkey,完全符合预期。
内容的提问来源于stack exchange,提问作者Konrad Viltersten
相关产品推荐
相关产品推荐

