如何访问从ant脚本传递到shell脚本的值



我们有一个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>

相关内容

  • 没有找到相关文章