In Groovy variable/expression substitution inside of strings (interpolation) only works with certain types of string literal syntax. Single quote syntax ('content'
) is not one of them. However, if you replace the outer single quotes with double quotes ("content"
) then you should get the interpolation effect you are looking for:
def sDescription = "foo"
def sedCommand = "sed -i 's/Description="[^"]*"/Description="$sDescription"/g' package.appxmanifest" as String
This should give you the string that contains the command you wish to run. Please note how I changed the special character escaping (
) within the string to reflect the change in string delimiters.
Aside: As noted by @tim_yates, Why would you want to invoke a separate ad hoc process to do this substitution when Groovy contains excellent XML manipulation facilities built into the language?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…