cygwin がインストールされている Windows マシンで、ANT build.xml からシェル スクリプトを呼び出しています。スクリプトが呼び出され、最初のエコー ステートメントがスクリプトで実行されています。しかし、スクリプト内の「sed」や「find」などのステートメントでエラーがスローされます。スクリプトを cygwin で直接実行すると、正常に実行されます。ANT から呼び出すと、エラーが発生してビルドに失敗します。以下のように、build.xml からシェル スクリプトを呼び出しています。
<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>
シェル スクリプトのスニペットは次のとおりです。
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
問題を理解するのを手伝ってもらえますか?