Jenkins管道,bash和管道

pco*_*ort 6 bash jenkins jenkins-pipeline

我有一个输出字符串,我想对它运行'tr'和'jq'命令。这样的管道很有意义,IP= sh(script: "echo $spawnServer | jq .[0] | tr -d '\"'", returnStdout: true)不幸的是詹金斯管道讨厌管道,所以我得到的是

+ tr -d '"'
+ jq '.[0]'
+ echo '[' 172.31.79.253, 'i-0d65b431f18a385d0]'
parse error: Invalid numeric literal at line 1, column 16
Run Code Online (Sandbox Code Playgroud)

任何提示都很棒!到目前为止,我唯一发现的是使用eval的人,但这对我不起作用。任何提示都很棒!

Von*_*onC 3

您可以使用 ,而不是纠结于引号和转义符,def如下所示:

def command = $/"echo ${spawnServer} | jq .[0] | tr -d '\"'"/$

res = sh(returnStdout: true, script: command).trim()
sh("echo ${res}")
Run Code Online (Sandbox Code Playgroud)