我需要编写ant脚本来在linux中执行一个文件,但在执行文件之前我需要执行安装文件。
在putty中,我习惯于“./setup”,然后是“./executeme”
以同样的方式我写了蚂蚁脚本
<exec dir="${dir}" executable="/bin/sh">
<arg value=". ./setup"/>
<arg value="./executeme"/>
</exec>
但它的错误为“/ bin / sh:../ setup:没有这样的文件或目录”。
也可以有人解释我执行“./setup”和“./setup”之间的区别吗?
提前感谢。
答案 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"
开头没有.
。