首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Cygwin路径转换为ruby可以理解的路径

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

Stack Overflow用户
提问于 2011-10-26 05:09:11
回答 2查看 645关注 0票数 1

在我的脚本中,我有一个部分需要将本地路径名更改为绝对路径(抱歉,不是这个部分)

我正在使用

代码语言:javascript
复制
args+="-f "
args+="$(realpath "$relative-path") "
jruby -Ilib bin/trace.rb $args

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

问题:

这是一种我可以让我的脚本总是将可用的路径作为arg传递给ruby的方法(jruby,但这无关紧要)。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-26 15:55:15

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

代码语言:javascript
复制
args+="$(cygpath -wa "$relative-path") "

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

票数 5
EN

Stack Overflow用户

发布于 2011-10-26 20:47:15

@ak2有正确的答案。不过,最好使用数组来构建参数,特别是在路径包含空格的情况下:

代码语言:javascript
复制
args=(-f)
args+=("$(cygpath -wa "$relative-path")")
jruby -Ilib bin/trace.rb "${args[@]}"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7895922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档