在groovy脚本中使用简单和双引号

在groovy脚本中使用简单和双引号,groovy,Groovy,我在groovy脚本中有以下代码: script = ''' def val1 = 'val1' def val2 = 'val2' def cmd = """ cd /path/to/my/folder && python -c 'import MyClass; MyClass.my_method(\"${val1}\",\"${val2}\")' """ def proc = ["bash", "-c", command].execute() proc.waitFor

我在groovy脚本中有以下代码:

script = ''' 
def val1 = 'val1' 
def val2 = 'val2' 
def cmd = """ cd /path/to/my/folder && python -c 'import MyClass; MyClass.my_method(\"${val1}\",\"${val2}\")' 
"""
def proc = ["bash", "-c", command].execute()
proc.waitFor()
print proc.in.text 
'''; 
我想在脚本之外使用参数:

def val1 = 'val1' 
def val2 = 'val2' 
script = ''' 
def cmd = """ 
cd /path/to/my/folder && python -c 'import MyClass; MyClass.my_method(\"${val1}\",\"${val2}\")' 
""" 
def proc = ["bash", "-c", command].execute()
proc.waitFor()
print proc.in.text
'''; 
def val1 = 'val1' 
def val2 = 'val2' 
script = """ 
def cmd = """ 
cd /path/to/my/folder && python -c 'import MyClass; MyClass.my_method(\"${val1}\",\"${val2}\")' 
""" 
def proc = ["bash", "-c", command].execute()
proc.waitFor()
print proc.in.text
""";
我试图结合简单和双三重报价,但它不工作,你有什么想法我可以解决这个问题

我想在脚本之外使用参数:

def val1 = 'val1' 
def val2 = 'val2' 
script = ''' 
def cmd = """ 
cd /path/to/my/folder && python -c 'import MyClass; MyClass.my_method(\"${val1}\",\"${val2}\")' 
""" 
def proc = ["bash", "-c", command].execute()
proc.waitFor()
print proc.in.text
'''; 
def val1 = 'val1' 
def val2 = 'val2' 
script = """ 
def cmd = """ 
cd /path/to/my/folder && python -c 'import MyClass; MyClass.my_method(\"${val1}\",\"${val2}\")' 
""" 
def proc = ["bash", "-c", command].execute()
proc.waitFor()
print proc.in.text
""";

我想知道这是否是您需要的:外部三个双引号以启用占位符替换

def val1 = 'val1' 
def val2 = 'val2' 
script = """ 
    def cmd = '''
        if cd /path/to/my/folder; then
            python -c 'import MyClass; MyClass.my_method("${val1}","${val2}")' 
        fi
    '''
    def proc = ["bash", "-c", command].execute()
    proc.waitFor()
    print proc.in.text
"""

很难说清楚你需要什么,但像这样的事情会更有意义

def val1 = 'val1' 
def val2 = 'val2'
def cmd = "cd /path/to/my/folder && python -c 'import MyClass; MyClass.my_method(${val1},${val2})'" 

script = """\
def proc = ["bash", "-c", ${cmd}].execute()
proc.waitFor()
print proc.in.text
"""
如果你真的想在cmd中使用双引号的话,也许是这样


我希望这会有所帮助。

我想在脚本之外使用参数是什么意思?