我在安裝了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