【问题标题】:does cygwin expect linux-like paths or windows-like pathscygwin 是否期望类似 linux 的路径或类似 Windows 的路径
【发布时间】:2015-05-03 00:46:11
【问题描述】:

我在使用 cygwin 时遇到了一些问题。

我有几个问题

  1. 说一下我转换为 shell 脚本的批处理脚本 cygwin 接受两个命令行参数,它们最初是

    mybatchfile.bat -i "C:\Users\astro\panam\input" -o "C:\Users\astro\panam\output"
    

    当我将这些参数传递给 shell 脚本时,我是否仍将 上面的命令行参数,或者,我是否给出了诸如

    之类的 cygwin 路径
    myscript.sh -i /cygdrive/c/users/astro/panam/input -o /cygdrive/c/users/astro/panam/output
    
  2. 说,我在我的批处理文件/脚本中硬编码了几个路径, 这些应该是类似窗口的路径,例如 C:\Users\astro\panam\somepath,或者这些应该是 cygwin 路径,例如 如/cygdrive/c/users/astro/panam/somepath
  3. 说,我的shell脚本如下

    path1="C:\\Users\\astro\\panam\\Doppler\\Workspace"
    path=$path1"\\test.java"
    echo $path
    

    执行脚本后,这是我得到的

    PepperBoy@PepperBoy-Inspiron-3542:~$ sh changepath.sh 
    C:\Usersstro\panam\Doppler\Workspace    est.java
    

    因此,我的路径都不起作用。

【问题讨论】:

  • 请注意shellscript等标签的信息,上面写着“不要使用这个标签”。就是这个意思!
  • 尝试各种方式。看看什么有效。看看什么不是。您已经在中途看到什么不起作用。检查输出并尝试破译每次逃避某些东西时到底发生了什么。 FWIW,你的最后一个脚本对我来说很好。

标签: shell batch-file cygwin


【解决方案1】:

从 Cygwin 1.7.x 开始,它只适用于 POSIX 路径名。

另一方面,Windows 也可以使用正斜杠。使用反斜杠只会给你带来无限的痛苦,因为它是 shell 转义字符。

Cygwin 有一个方便的实用程序可以将 Windows 路径转换为 ​​POSIX 路径,反之亦然。看看它能做什么:

man cygpath

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 2014-02-11
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    相关资源
    最近更新 更多