ゲンゾウ用ポストイット

Java、Groovy、Linux関連の備忘録

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

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でもまだ修正しないといけないみたい。
誰も問題になっていないのかな?