我们有一个shell脚本,我们从ant脚本调用它。我们需要从ant脚本向shell脚本传递输入。
<target name="help">
<exec executable="cmd">
<arg value="Hello"/>
<arg value="Welcome"/>
<arg value="World"/>
</exec>
</target>
但是我们不知道如何在shell脚本中访问ant脚本传递的值。谁能告诉我正确的信息,谢谢。
使用属性作为输入,例如:
<project>
<property name="foobar" location="C:/foobar" />
<property name="foo" value="bar" />
<exec executable="cmd">
<arg value="/c" />
<env key="PATH" path="${env.PATH};${foobar}/bin" />
<arg value="set" />
</exec>
<exec executable="cmd">
<arg value="/c" />
<arg value="echo" />
<arg value="${foo}" />
</exec>
</project>
必须使用/c
作为第一个参数值。
当调用期望%1的batfile时…%9作为输入,第一个参数是<arg value=/c">
,
第二个参数是<arg value="yourbatfile.bat/>
。
下面的参数<arg value=.../>
将是%1,依此类推,例如:
foobar.bat
@echo off
echo First argument %1
echo Second argument %2
build . xml
<project>
<exec dir="dir="path/to/batfile" executable="cmd">
<arg value="/c"/>
<arg value="foobar.bat"/>
<arg value="foo"/>
<arg value="bar"/>
</exec>
</project>
输出
[exec] First argument foo
[exec] Second argument bar
调用shell脚本的例子,第一个参数必须是<arg value="/path/to/shellscript.sh"/>
,接下来的参数<arg value="..."/>
将是$1…
foobar.sh
#!/bin/bash
echo "$# = $#"
echo "$0 = $0"
echo "$1 = $1"
echo "$2 = $2"
build . xml
<project>
<exec executable="/bin/bash">
<arg value="/path/to/foobar.sh"/>
<arg value="foo"/>
<arg value="bar"/>
</exec>
</project>