我在安装了cygwin的Windows机器上从ANT build.xml调用shell脚本。该脚本正在调用,并且脚本中正在执行初始回声语句。但它会在脚本中的'sed'或'find'等语句中引发错误。当我直接在cygwin中执行脚本时,它已成功执行。在从ANT调用它时,会出现错误并且构建失败。我打电话从build.xml中的shell脚本如下:当通过ANT调用shell命令时无法识别
<target name="xml2prop"
description="exec shell script"
>
<exec dir="." executable="C:\cygwin\bin\bash" osfamily="windows">
<arg value="C:\script\testscript.sh"/>
<arg value="${root}"/>
</exec>
</target>
shell脚本片段是如下:
if [ $# -lt 1 ]
then
echo "error"
else
echo "\$1 is \"$1\" and total args to $0 are $# "
rt="${1//\\//}"
echo $rt
fi;
find "$rt" -name "*.xml" |
while read xmlfile
do
echo "$xmlfile";
done
,我得到的错误是如下
[exec] $1 is "C:\new\test" and total args to C:\script\testscript.sh are 1
[exec] C:/new/test
[exec] FIND: Parameter format not correct
你能帮我弄清楚这个问题吗?
为什么不作为字符串来回应find命令并查看传递给它的内容。 –
某些旧版本的'find'没有默认'-print',你可以试试。如果没有,请在脚本的开头放置'set -x'来查看生成的值。 – cdarke