如何编写带有特殊字符的azure devops yaml

问题描述 投票:0回答:1

我正在尝试编写一个管道任务,该任务会生成一个文件(run.sh),该文件将由我的 docker 容器运行,以用容器中的环境变量替换一些 javascript。

不幸的是,管道正在尝试解释 ${var1} 和 ${var2},这正是我希望在脚本实际执行时发生的情况。

如果我可以将脚本放入 docker 容器中,脚本本身就可以正常工作。

- script: |
    tee -a run.sh <<EOF
    #!/bin/sh

    ###replace configuration with environment variables
    /bin/sed -i 's@https://development-website.mywebsite.cloud@'"${var1}@g" /usr/share/nginx/html/assets/index*.js
    /bin/sed -i 's@https://development-login.mywebsite.cloud@'"${var2}@g" /usr/share/nginx/html/assets/index*.js

    EOF
  displayName: "make run.sh"
bash azure-pipelines-yaml
1个回答
0
投票

您可以在

\
之前添加反斜杠
${var}
,例如任务中的
\${var1}

示例如下:

pool:
  vmImage: Ubuntu-latest     ## use linux anget

steps:
- script: |
    tee -a run.sh <<EOF
    #!/bin/sh

    ###replace configuration with environment variables
    /bin/sed -i 's@https://development-website.mywebsite.cloud@'"\${var1}@g" /usr/share/nginx/html/assets/index*.js
    /bin/sed -i 's@https://development-login.mywebsite.cloud@'"\${var2}@g" /usr/share/nginx/html/assets/index*.js

    EOF
  displayName: "make run.sh"

输出:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.