这是两个蚂蚁任务:
<target name="hg.add" >
<exec dir="." executable="hg">
<arg line="add ${reports-summary}" />
</exec>
</target>
<target name="hg.add">
<exec executable="/bin/sh">
<arg value="-c"/>
<arg value="hg add ${reports-summary}"/>
</exec>
</target>
这两个任务似乎具有相同的功能。但为什么第二个需要写“/ bin / sh”和“-c”?
答案 0 :(得分:2)
-c只是可执行文件的一个参数,它对ant exec任务没有任何特殊意义。
第一个目标是直接运行hg
可执行文件。
第二个目标是运行Linux / Unix shell命令(/bin/sh
)并向其传递-c
参数,该参数告诉shell执行下一个参数中给出的命令。因此,这将运行与第一个目标相同的命令,但shell命令可能会在运行命令之前设置环境变量等内容。