将Cygwin路径转换为ruby可以理解的路径

def*_*tor 1 ruby bash cygwin jruby

在我的脚本中,我有一个部分需要将本地路径名称更改为绝对路径(不进入它,对不起)

我在用

args+="-f "
args+="$(realpath "$relative-path") "
jruby -Ilib bin/trace.rb $args
Run Code Online (Sandbox Code Playgroud)

这适用于脚本中的内容,但是当我将此绝对文件路径传递给ruby时,它不知道该怎么做.我可以想办法通过字符串替换在我的本地方框上解决这个问题.sub(C:for cygpath/c),但是如果我要将我的脚本部署到一个未知的文件系统,我可能会遇到麻烦.它需要在cygwin上进行开发(我知道我必须在寡妇中开发)和unix盒子.

题:

这是一种方法,我可以使我的脚本总是通过一个可用的路径作为一个arg到ruby(jruby,但这不重要).

对单个解决方案的建议或者以不同方式处理cygwin和unix环境的建议都是受欢迎的.

ak2*_*ak2 5

Cygwin的cygpath命令是工作的工具.它在Cygwin的POSIX路径和各种形式的Windows路径之间进行转换.它甚至会为你做绝对路径转换,所以:

args+="$(cygpath -wa "$relative-path") "
Run Code Online (Sandbox Code Playgroud)

有关其选项的详细信息,请参阅cygpath的帮助输出或手册页.