【问题标题】:Jenkins pipeline script to write value of variable in fileJenkins管道脚本在文件中写入变量的值
【发布时间】:2020-08-12 09:33:37
【问题描述】:

我正在从凭证存储中提取用户名/密码,并将其分配给一个变量。我想将此值写入文件中。 我正在使用以下代码:

for (creds in jenkinsCredentials) {
            if(creds.id == "credential"){
            def password = creds.password
            println(creds.username)
            println(password)
            writeFile file: '\\Jenkins_Home\\workspace\\test\\test.properties', text: 'pass=${password}'
    

它打印密码的值。 但它只写 pass=${password},而不是密码的值。

如何在文件中写入变量的值?

【问题讨论】:

    标签: jenkins groovy jenkins-pipeline devops jenkins-groovy


    【解决方案1】:

    试试 Sriram 提到的双引号。他是正确的,管道 groovy 脚本确实存在单引号问题。

    还发现有时双引号也可能是一个问题,必须将它们转义 (\")。看看你怎么做!

    我还有另一个解决方案,您可以将进入文件的文本定义为变量,并将 writeFile 参数括在括号中,见下文:

    in jenkinsCredentials) {
            if(creds.id == "credential"){
            def password = creds.password
            println(creds.username)
            println(password)
            def pass = "pass=" + password
            writeFile (file: '\\Jenkins_Home\\workspace\\test\\test.properties', text: pass)
    

    【讨论】:

    【解决方案2】:

    使用双引号 (") 代替单引号 ('),如下所示:

    writeFile file: "\\Jenkins_Home\\workspace\\test\\test.properties", text: "pass=${password}"
    

    由于某种原因,管道 groovy 脚本在单引号(')方面存在一些问题

    【讨论】:

    • 我想提取另一个密码并将该密码附加到 test.properties 文件中。怎样才能做到这一点
    • 我不明白你的问题。是否要在与上述相同的循环中更新密码?
    猜你喜欢
    • 2018-09-13
    • 2021-10-19
    • 1970-01-01
    • 2021-12-14
    • 2019-01-04
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    相关资源
    最近更新 更多