Cygwin cygdrive前缀在bash脚本中不起作用

Cygwin cygdrive前缀在bash脚本中不起作用,cygwin,Cygwin,/cygdrive/c在我的bash脚本中不起作用。这里列出了代码行 PRGPATH="`dirname "$0"`" exec "${PRGPATH}/../../java" .... "${PRGPATH}/xxxx.jar" 结果是无法访问jarfile/cygdrive/c/app/xxxx.jar 但是如果我使用ls/cygdrive/c/app/xxxx.jar,它就在那里。如果我用c://替换/cygdrive/c/,那么脚本就可以工作了。 为什么/cygdrive/c/在脚本中

/cygdrive/c在我的bash脚本中不起作用。这里列出了代码行

PRGPATH="`dirname "$0"`" exec "${PRGPATH}/../../java" .... "${PRGPATH}/xxxx.jar"
结果是
无法访问jarfile/cygdrive/c/app/xxxx.jar

但是如果我使用ls/cygdrive/c/app/xxxx.jar,它就在那里。如果我用
c://
替换
/cygdrive/c/
,那么脚本就可以工作了。
为什么
/cygdrive/c/
在脚本中不起作用?

java.exe
是一个Windows程序,它的参数中需要Windows样式
c:\…
路径,而不是Cygwin样式
/cygdrive/c/..
路径

Cygwin附带了在两种路径样式之间转换的实用程序

请尝试以下方法:

PRGPATH="`dirname "$0"`" exec "${PRGPATH}/../../java" .... "$(cygpath -w "${PRGPATH}/xxxx.jar")"