我有以下命令在Azure DevOps yaml中设置BASE_URL
变量:
- script: |
echo "##vso[task.setvariable variable=BASE_URL;]$(PROD-CONTAINER-URL)"
condition: and(succeeded(), eq(variables['Build.SourceBranchName'], 'master'))
但是,只要我回显该变量,它就会像这样:
https://google.com"
如果我用单引号替换它,或者将$(PROD-CONTAINER-URL)
放在引号的内部或外部,则问题仍然存在。我该如何解决这个问题以及其原因是什么?
答案 0 :(得分:2)
要在Bash脚本中解决此问题,您需要删除双引号或单引号。
Successful!
然后steps:
- script: |
echo ##vso[task.setvariable variable=BASE_URL;]$(PROD-CONTAINER-URL)
displayName: 'Run a one-line script'
- script: |
echo $(BASE_URL)
变量将不包含引号。
答案 1 :(得分:1)
使用powershell修复。必须是我不知道的Bash逃逸问题:
- powershell: |
Write-Host "##vso[task.setvariable variable=BASE_URL;]$(TEST-CONTAINER-URL)"
condition: and(succeeded(), eq(variables['Build.SourceBranchName'], 'develop'))
displayName: "Initialize test base url variable"