coo*_*kul 2 java linux ant exec
我需要编写ant脚本来在linux中执行一个文件,但在执行文件之前我需要执行setup文件.
在putty我习惯了类似"./setup"然后"./executeme"的东西
以同样的方式我写了蚂蚁脚本作为
<exec dir="${dir}" executable="/bin/sh">
<arg value=". ./setup"/>
<arg value="./executeme"/>
</exec>
Run Code Online (Sandbox Code Playgroud)
但它给出错误为"/ bin/sh:../ setup:没有这样的文件或目录".
还有人可以解释我执行"./setup"和"./setup"之间的区别吗?
提前致谢.
您可以通过创建单行脚本运行在交互式会话中使用的命令序列,并将其传递给sh使用-c如下:
<exec dir="${dir}" executable="/bin/sh">
<arg value="-c"/>
<arg value=". ./setup; ./executeme"/>
</exec>
Run Code Online (Sandbox Code Playgroud)
您需要将两个命令作为一个传递arg,否则它们将被区别对待:第一个成为'脚本',下一个成为该脚本的第一个参数.或者,如果您愿意,以上相当于跑步
sh -c ". ./setup; ./executeme"
Run Code Online (Sandbox Code Playgroud)
而对于单独的arg元素,您正在运行
sh -c ". ./setup" ./executeme
Run Code Online (Sandbox Code Playgroud)
这似乎不会失败,除非setup它的参数列表,但它不会运行executeme.
| 归档时间: |
|
| 查看次数: |
4546 次 |
| 最近记录: |