我正在尝试编写一个管道任务,该任务会生成一个文件(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"
您可以在
\
之前添加反斜杠 ${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"
输出: