Я столкнулся со странно выглядящей проблемой, пытаясь заставить скрипт сборки (от стороннего производителя) работать на моей установке с Win7 и Cygwin (последняя версия). Возможно, эту проблему лучше всего описать на примере фрагмента сценария bash
:
foo="/cygdrive/c/svn/Projects/Client Config/Android/Repack/foo/out"
cygpath -w "$foo/play-services-tasks/classes.jar"
bar=`cygpath -w "$foo/play-services-tasks/classes.jar"`
echo $bar
Запуск, который приводит к следующему (обратите внимание на двоеточие после буквы диска):
C:\svn\Projects\Client Config\Android\Repack\foo\out\play-services-tasks\classes.jar
C \svn\Projects\Client Config\Android\Repack\foo\out\play-services-tasks\classes.jar
Таким образом, путь (вывод cygpath
) является правильным до помещения его в переменную, но переменная больше не содержит двоеточие после буквы диска. Это, в свою очередь, приводит к сбою другого скрипта / инструмента, когда он пытается перебрать пути в переменной через пробел. И, к сожалению, у этого инструмента ожидаются пути в стиле Windows.
Излишне говорить, что я сбит с толку ...
Проблема возникла, когда скрипт сборки изменился, и в нем могут отсутствовать некоторые хаки совместимости с Cygwin, некоторые из которых мне уже удалось применить, но этот действительно противный. Возможно, можно как-то обойти измененные части, но я бы предпочел выяснить, в чем причина моего открытия и как с этим справиться напрямую.