Ant:没有这样的文件或目录

时间:2012-07-31 20:30:45

标签: java linux ant exec

我需要编写ant脚本来在linux中执行一个文件,但在执行文件之前我需要执行安装文件。

在putty中,我习惯于“./setup”,然后是“./executeme”

以同样的方式我写了蚂蚁脚本

    <exec dir="${dir}" executable="/bin/sh">
        <arg value=". ./setup"/>
        <arg value="./executeme"/>
    </exec>

但它的错误为“/ bin / sh:../ setup:没有这样的文件或目录”。

也可以有人解释我执行“./setup”和“./setup”之间的区别吗?

提前感谢。

2 个答案:

答案 0 :(得分:6)

您可以通过创建单行脚本运行您在交互式会话中使用的命令序列,并使用sh将其传递给-c,如下所示:

<exec dir="${dir}" executable="/bin/sh">
    <arg value="-c"/>
    <arg value=". ./setup; ./executeme"/>
</exec>

您需要将两个命令作为一个arg传递,否则它们将被区别对待:第一个成为'脚本',下一个成为该脚本的第一个参数。或者,如果您愿意,上述内容相当于运行

sh -c ". ./setup; ./executeme"

而对于单独的arg元素,您正在运行

sh -c ". ./setup" ./executeme

除非setup对其参数列表执行某些操作,否则可能看起来不会失败,但它不会运行executeme

答案 1 :(得分:0)

value="./setup"

开头没有.