我在使用node.js作为Cygwin终端中的脚本语言时遇到了问题。该脚本不仅用于Cygwin,还用于OS X或GNU / Linux等其他平台(没有问题)。
脚本的本地或绝对路径参数作为Cygwin路径传递(例如:/cygdrive/c/Users/username/Dir/some-file.txt
),但节点需要Windows路径(例如:C:\Users\username\Dir\some-file.txt
)。
有一个工具 cygpath 用于在两者之间进行转换,但由于多平台要求,我无法对它们进行硬编码。我不想制作任何bash包装器,所以我可以保持一个文件脚本。
例如,这可以工作:./script $(cygpath -w /tmp/file)
,但我不能要求脚本的用户每次想要使用它时都会放置cygpath。
Node作为windows二进制文件安装,并使用shabang #!/usr/bin/env node
调用。 which nodejs
会产生/cygdrive/c/Program Files/nodejs/node
。
TL; DR:是否有任何理智且可移植的方式在Cygwin中触发nodejs脚本参数的自动路径转换?