windows + cygwin + shebang 利用時にうまくスクリプトが動かない場合の対処

Groovy

windows + cygwinで、たとえばデスクトップに以下のスクリプトを配置して実行すると動かない。

test.groovy

#/usr/bin/env groovy
prnltn "test"

cygwinで実行

cd
cd デスクトップ
./test.groovy

$GROOVY_HOME/bin/startGroovy を以下のように修正する。

--- startGroovy.orig    2010-12-21 12:17:33.431960400 +0900
+++ startGroovy 2010-12-21 12:16:57.730434900 +0900
@@ -223,7 +223,8 @@
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
if [ $CHECK -ne 0 ] ; then
-            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+#            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+            eval `echo args$i`="\"`cygpath --path --ignore --mixed "$arg"`\""
else
eval `echo args$i`="\"$arg\""
fi

1.7.6でもまだ修正しないといけないみたい。
誰も問題になっていないのかな?

Groovy

Posted by genzouw