通过Ant exec运行多个命令

11

我希望能够通过一个Ant构建脚本来完成这个任务:

$ /bin/sh
$ cd /path/to/executable
$ ./executable.sh

我尝试过这个,但我认为它只执行了 cd 命令:

<exec executable="/bin/sh" os="Mac OS X">
    <arg value="-c"/>
    <arg value="cd /path/to/executable"/>
    <arg value="./executable.sh"/>
</exec>

我使用的是 Mac OS X 操作系统。

1个回答

17

仅在-c之后的第一个参数被shell运行,因此这是您看到的行为。只需将两个命令放入一个参数中,用分号分隔:

只有在-c之后的第一个参数会被 shell 运行,所以您看到了这种行为。只需要将这两个命令放在一个参数中,用分号分隔:

<exec executable="/bin/sh" os="Mac OS X">
    <arg value="-c"/>
    <arg value="cd /path/to/executable; ./executable.sh"/>
</exec>

这很奇怪,这意味着我们不能在Mac上使用args吗?我们需要将所有命令都放在同一行的-c args旁边吗? - Senthil Arumugam SP
我建议每个命令都在自己的exec标签中运行,而不是像那样链接它们,因为这样会混淆错误。如果其中一个失败,您可能无法获得必要的错误信息来识别罪犯。 - luis.espinal
@luis - 是的,但在这种情况下,第二个命令似乎需要链接。 - martin clayton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接