我有一个输出字符串,我想对其运行'tr‘和'jq’命令。管道是这样的,IP= sh(script: "echo $spawnServer | jq .[0] | tr -d '\"'", returnStdout: true)不幸的是,jenkins管道讨厌管道,所以我得到的是
+ tr -d '"'
+ jq '.[0]'
+ echo '[' 172.31.79.253, 'i-0d65b431f18a385d0]'
parse error: Invalid numeric literal at line 1, column 16任何提示都是很棒的!到目前为止,我发现的唯一一件事就是有人在使用eval,但这对我不起作用。任何提示都是很棒的!
发布于 2017-11-09 13:57:05
您可以使用def,而不是纠结于引号和转义,如下所示:
def command = $/"echo ${spawnServer} | jq .[0] | tr -d '\"'"/$
res = sh(returnStdout: true, script: command).trim()
sh("echo ${res}")https://stackoverflow.com/questions/47193645
复制相似问题