从输入文件读取key:value的Groovy脚本
我运行下面一段groovy代码从输入文件从输入文件读取key:value的Groovy脚本,groovy,hashmap,jenkins-pipeline,Groovy,Hashmap,Jenkins Pipeline,我运行下面一段groovy代码从输入文件input.txt def var1 = 123; def aVer = sh(returnStdout: true, script: "cat Input.txt | grep A_${var1} | cut -f2 -d':'").trim() def bVer = sh(returnStdout: true, script: "cat Input.txt | grep B_${var1} | cut -f2 -d':'&
input.txt
def var1 = 123;
def aVer = sh(returnStdout: true, script: "cat Input.txt | grep A_${var1} | cut -f2 -d':'").trim()
def bVer = sh(returnStdout: true, script: "cat Input.txt | grep B_${var1} | cut -f2 -d':'").trim()
def lVer = sh(returnStdout: true, script: "cat Input.txt | grep L_${var1} | cut -f2 -d':'").trim()
println ("a is ${aVer}, b is ${bVer}, l is ${lVer} \n");
输入_文件
$> cat Input.txt
A_123:0.1
B_123:0.2
L_123:0.3
样本输出
a is 0.1, b is 0.2, l is 0.3
这只是一个片段。在dev环境中,我在for循环中为不同的var1
值运行上述代码
这里的问题是,上述代码在rhel60
机器上工作正常,但在centos
机器上,我得到以下错误:
脚本返回退出代码127
有人能帮助我理解在centos
机器上出现上述错误的原因吗
我也愿意将其更改为纯groovy代码,而不使用如上所示的shell命令。
(“input.txt”作为文件)。readLines().collectEntries{it.split(:”,2)}
只需将整个文件读入一个映射,然后您就可以从中选择值。@cfrick这看起来像是我的答案,只要文件本地存储在主控服务器上,而不是生成服务器上。@cfrick,@Matt,文件input.txt
就存储在生成服务器上,而不是Jenkins主控服务器上。如果文件不在master上,您建议的代码是否会不起作用?