从输入文件读取key:value的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':'&

我运行下面一段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':'").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上,您建议的代码是否会不起作用?