在groovy中,如果我想要多行字符串而不插值和WITHOUT ESCAPING
该怎么办类似的东西:
var1="hello hello"
var2="""/
adakldjkadj\^mk
as@da\kl#DFD#$#
${var1}
d3&657\7fdsfsf
/"""
println var2;
应该打印完全相同,如:
adakldjkadj \ ^ MK
如@哒\ KL#DFD#$#
$ {VAR1}
d3& 657 \ 7fdsfsf
但是,$ {var1}尚未展开,并且不需要转义\并且它是多行字符串
然后如何在GROOVY中分配这个HEREDOC STRING。这在bash脚本,ruby,perl等中是可能的。
在ruby中表示为(注意分隔符字符周围的引号如:'EOL')
a = <<'EOL'
adakldjkadj\^mk
as@da\kl#DFD#$#
yes ${var1}
d3&657\7fdsfsf
EOL
如何在groovy中做到这一点?
答案 0 :(得分:2)
使用'''
之类的三重单引号而不是双引号来避免多行字符串中的变量插值。
答案 1 :(得分:1)
这是不可能的,请参见此处:https://issues.apache.org/jira/browse/GROOVY-411
答案 2 :(得分:1)
您可以使用单引号更接近,但仍然不是您想要的。它不会再扩展$ {var1}。
就\而言,它始终是特殊字符的java / groovy分隔符,所以你总是要逃避它。
编辑:看起来他们正在为1.8工作,或者它已经在1.8。我目前只运行1.7,所以无法测试或提供代码示例。