Shell 如何在gradle保持美元符号? 更新:2017/06/21

Shell 如何在gradle保持美元符号? 更新:2017/06/21,shell,gradle,groovy,sed,Shell,Gradle,Groovy,Sed,我想把这个问题弄清楚。我想修改一个包含字符串的文件(名为meta67.config) $BUILD_PATH=“/abc/Bach/buildroot-2015.05” 该字符串应替换为 $BUILD_PATH=“/workspace/kuanlin/abc/Bach/buildroot-2015.05” 因此,我像这样将命令写入build.gradle task build(type:Exec) { def cmd = """ set -e

我想把这个问题弄清楚。我想修改一个包含字符串的文件(名为meta67.config)

$BUILD_PATH=“/abc/Bach/buildroot-2015.05”

该字符串应替换为

$BUILD_PATH=“/workspace/kuanlin/abc/Bach/buildroot-2015.05”

因此,我像这样将命令写入build.gradle

task build(type:Exec) {
    def cmd = """
    set -e
    sleep 2
    cd /workspace/kuanlin
    echo "\$BUILD_PATH="/workspace/kuanlin/abc/Bach/buildroot-2015.05";" > config/mt6755.config
    """

    executable "bash"
    args "-l", "-c", dockerCmd(cmd)
}
执行gradle build后,cat mt6755.config将显示如下内容,$build\u PATH的字符串将始终消失

=/workspace/modem/mtkeda/Bach/arm7/20150805/buildroot-2015.05;

dockerCmd
做什么?你没有逃过所有的反斜杠。例如,这个:
\”/workspace
和这个:
2015.05\“
它也不工作。请提供一个在bash中工作的清晰命令行。我得到了答案,因为我将命令分配给了任务的对象(cmd),docker将在执行时从dockerCmd(cmd)读取该命令,所以我需要在美元符号前面加上更多的反斜杠,如:echo“\$BUILD\u PATH=“/workspace…”。。。。。。。