我正在使用 build.xml 中的以下 ant 脚本阅读教程
<project name="calculator4" default="generate" basedir=".">
<property name="src" location="src" />
<property name="gen" location="gen" />
<property name="src" location="src" />
<property name="package" value="calculator4" />
<target name="generate">
<mkdir dir="${gen}/${package}" />
<java classname="org.antlr.v4.Tool" classpathref="classpath" fork="true">
<arg value="-o" />
<arg path="${gen}/${package}" />
<arg value="-lib" />
<arg path="${src}/${package}" />
<arg value="-listener" />
<arg value="${src}/${package}/Calculator.g4" />
</java>
</target>
由于我对 ant 不太了解并且不想使用它,因此我尝试将命令翻译为 bash 像这样
java org.antlr.v4.Tool -o gen/calculator4 -lib src/calculator4 -listener src/calculator4/Calculator.g4
但这是错误的,因为它在 gen/calculator4/src/calculator4 中生成文件,因为它应该在 gen/calculator4 中生成文件的正确行为
除了直接替换之外,${} 有什么特别之处吗?