Sed命令给我带来了以下问题:合并$ tag变量witch等于“ latest $ {GIT_COMMIT:0:7}”。这是Sed命令:
sh "sed -i 's/{BUILD_NUMBER}/$tag/' /var/lib/jenkins/workspace/${JOB_NAME}/em-api/dev-nics-emapi-svc-param.json"
我显然想将.com提交信息放入我的.json文件中,但是它并没有提取实际的提交信息。当我看一下.json文件时,它插入了变量的字面定义,即“ latest $ {GIT_COMMIT:0:4}”。我正在尝试在Linux上运行的jenkins服务器上的声明性管道上执行此操作。
我希望它插入“ latestxxxx”。关于如何解决这个问题有什么建议吗?
答案 0 :(得分:0)
GIT_COMMIT
是可供您使用的环境变量; tag
是一个常规变量,您已将其设置为'latest${GIT_COMMIT:0:4}'
。因此,由于您在sed命令中使用"
,因此此内容被替换。但是,您在sed表达式中使用的是'
,然后它又不会替换环境变量。因此,您基本上有两个选择:
"
引用sed命令,如果您对内容感到满意,则将其替换(您可以对整个命令使用"""
三重引号,而不必引用{ {1}}(适用于常规)"
的东西)