在Groovy Shell执行期间发出局部变量值

在Groovy Shell执行期间发出局部变量值,groovy,groovyshell,Groovy,Groovyshell,假设我们有以下Groovy脚本: temp = a + b temp * 10 现在,假设a和b使用各自的值绑定到上下文,并且脚本使用groovy shell脚本执行 是否有一种方法可以获得temp变量赋值的值,而无需将值打印/记录到控制台?例如,给定a=2和b=3,我不仅想知道脚本返回了50,还想知道temp=5。是否有办法截取每个赋值以获取值 如有任何建议或选择,我们将不胜感激。提前谢谢 通过将实例传递给GroovyShell对象,可以从脚本捕获所有绑定和分配。考虑下面的例子: def b

假设我们有以下Groovy脚本:

temp = a + b
temp * 10
现在,假设
a
b
使用各自的值绑定到上下文,并且脚本使用groovy shell脚本执行

是否有一种方法可以获得
temp
变量赋值的值,而无需将值打印/记录到控制台?例如,给定
a=2
b=3
,我不仅想知道脚本返回了
50
,还想知道
temp=5
。是否有办法截取每个赋值以获取值


如有任何建议或选择,我们将不胜感激。提前谢谢

通过将实例传递给
GroovyShell
对象,可以从脚本捕获所有绑定和分配。考虑下面的例子:

def binding = new Binding()
def shell = new GroovyShell(binding)

def script = '''
a = 2
b = 3
temp = a + b
temp * 10
'''

println shell.run(script, 'script.groovy', [])

println binding.variables
运行此脚本会将以下两行打印到控制台:

50
[args:[], a:2, b:3, temp:5]
如果要访问
temp
脚本变量的值,只需执行以下操作:

binding.variables.temp

你就是那个人!谢谢你给我指明了正确的方向。