0
我試圖找回在類Core.java定義路線如下:在Ant文件轉義引號字符
public static final String PLATFORM_VERSION = "3.0.1_170518";
所以我創建了一個測試Ant文件(因爲我想將它保存爲編譯過程中使用的ant屬性)。
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." default="get-core-version" name="test">
<target name="get-core-version">
<exec executable="bash"
outputproperty="coreVersionTemp"
failonerror="true">
<arg value="-c"/>
<arg value="cat ./Core.java | grep VERSION"/>
</exec>
<echo message=""ResultadoIntermedio": ${coreVersionTemp}"/>
<exec executable="bash"
outputproperty="coreVersion"
failonerror="true">
<arg value="-c"/>
<arg value="echo ${coreVersionTemp} | cut -d'\"' -f2"/>
</exec>
<echo message="Resultado: ${coreVersion}"/>
</target>
螞蟻代碼被劃分到定位確切位置失敗。螞蟻回來:
Buildfile: E:\git\test.xml
get-core-version:
[echo] "ResultadoIntermedio": public static final String PLATFORM_VERSION = "3.0.1_170518";
BUILD FAILED
E:\git\test.xml:14: exec returned: 1
Total time: 0 seconds
正如你所看到的,錯誤是'cut'命令。 ResultadoIntermedio是正確的。 如果執行上的bash完整的命令,我們預期的結果,以及:
$ cat ./Core.java | grep VERSION | cut -d '"' -f2
3.0.1_170518
的問題是,我認爲,在切割的-d選項後轉義字符。 我曾嘗試:
'"'
'\"'
\'\"\'
'"'
\'"\'
'"'
和其他一些組合...我怎麼能正確地做到這一點?
非常感謝。