1.将一个groovy变量传递给shell
您的示例不起作用,因为您使用的是带单引号的字符串文字。从Groovy手册(重点是我的):
任何Groovy的表达可以在所有字符串文字从被内插,除了 单 和 三单引号 的字符串。
试试这个:
sh "echo 'Hello World. Var=$var'"
或这个:
sh """ echo 'Hello World. Var=$var' echo 'More stuff'"""
2.从shell设置一个Groovy变量
您不能从Shell步骤直接设置Groovy变量。从Groovy到Shell,这仅在一个方向上起作用。相反,您可以设置退出代码或将数据写入Groovy可以读取的stdout。
返回一个整数
传递
true参数
returnStatus并从shell脚本中设置退出代码,该代码将是
sh步骤的返回值。
var = sh script: 'exit 42', returnStatus: trueecho "$var" // prints 42
返回一个字符串
传递
true参数
returnStdout并
echo从shell脚本使用以输出字符串数据。
var = sh script: "echo 'the answer is 42'", returnStdout: trueecho "$var" // prints "the answer is 42"
返回结构化数据
传递
true参数
returnStdout并
echo从shell脚本使用以JSON格式输出字符串数据。
使用解析Groovy代码中的JSON数据
JsonSlurper。现在,您可以查询一个常规的Groovy对象。
def jsonStr = sh returnStdout: true, script: """ echo '{ "answer": 42, "question": "what is 6 times 7" }'"""def jsonData = new groovy.json.JsonSlurper().parseText( jsonStr ) echo "answer: $jsonData.answer"echo "question: $jsonData.question"


