Shell 如何在gradle保持美元符号? 更新:2017/06/21
我想把这个问题弄清楚。我想修改一个包含字符串的文件(名为meta67.config) $BUILD_PATH=“/abc/Bach/buildroot-2015.05” 该字符串应替换为 $BUILD_PATH=“/workspace/kuanlin/abc/Bach/buildroot-2015.05” 因此,我像这样将命令写入build.gradleShell 如何在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
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…”。。。。。。。