首页 > 解决方案 > Azure 管道运行时替换表达式

问题描述

replace在 azure 管道 yaml 文件中有两个相同的语句

 - script: echo ${{ replace('refs/heads/origin', 'refs/heads', 'origin') }}
 - script: echo $[ replace('refs/heads/origin', 'refs/heads', 'origin') ]

除了一个是运行时表达式,而另一个是编译时表达式。

虽然编译时表达式工作正常,但运行时表达式给了我以下错误

line 1: replace('refs/heads/origin', 'refs/heads', 'origin') : syntax error in expression (error token is "('refs/heads/origin', 'refs/heads', 'origin') ")

如何使运行时替换表达式正常工作?

标签: azureazure-devopsazure-pipelines

解决方案


您应该为此使用一个变量:

variables:
  runtimeTest: $[ replace('refs/heads/origin', 'refs/heads', 'origin') ]

然后您可以在script没有错误的部分中引用它:

steps:
- script: echo $(runtimeTest)

推荐阅读