- В bash синтаксис
$(command)
более понятен, чем обратные черты `command`
cygpath
имеет опцию -p
для преобразования значений, похожих на PATH (в отличие от имен одиночных путей) между Windows и Unix, т.е.
cygpath -pu 'C:\Users\me\bin;C:\Users\me\project\bin'
даст /cygdrive/c/Users/me/bin:/cygdrive/c/Users/me/project/bin
cygpath -pw
сделает то же самое в обратном направлении
Обратите внимание, что cygpath -u "/cygdrive/c"
(как и в вашем вопросе) ничего не изменит, поскольку имя каталога уже соответствует желаемому (Unix) синтаксису. Вы могли бы также опустить это.
Итак, команда становится:
CP="C:/Projects/common/lib/rome-1.0.jar;C:/Projects/common/lib/jdom-1.0.jar;C:/Projects/common/lib/jsoup-1.6.1.jar;
C:/Projects/common/lib/mysql-connector-java-5.1.18-bin.jar;C:/Projects
/Freereader/bin"
# for a Windows Java binary:
java -classpath "$(cygpath -pw "$CP")" com.free.syndication.SQLfeeder
# for a Unix Java binary:
java -classpath "$(cygpath -pu "$CP")" com.free.syndication.SQLfeeder
Кроме того, вы можете начать с пути к классу в стиле Unix, но команды останутся прежними. В любом случае вы, конечно, можете опустить вызов cygpath, если путь к классу уже находится в желаемом синтаксисе.