【问题标题】:How can I get Cygwin to accurately read my Windows environment variables?如何让 Cygwin 准确读取我的 Windows 环境变量?
【发布时间】:2012-08-11 22:34:34
【问题描述】:

我正在使用带有最新版本 Cygwin 的 Windows XP。如果我在我的 Windows 系统中设置以下环境变量

JBOSS_HOME=C:/Program Files/jboss-4.2.3.GA

然后启动 Cygwin,我无法切换到继承的 $JBOSS_HOME 目录。

$ cd $JBOSS_HOME
cygwin warning:
  MS-DOS style path detected: C:/Program
  Preferred POSIX equivalent is: /cygdrive/c/Program
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
-bash: cd: C:/Program: No such file or directory

是否可以在 Windows 环境中定义我的系统变量一次,然后让 Cygwin 解释它,这样我就不会收到“没有这样的文件或目录”警告?

【问题讨论】:

    标签: windows cygwin environment-variables


    【解决方案1】:

    我正在使用带有 ShellED 插件的 Eclispse,

    我收到了同样的通知,不知道准确的配置,

    我只是将导出值添加到脚本中

    '#!/bin/bash'
    
    export CYGWIN="${CYGWIN} nodosfilewarning"
    
    echo hello
    

    【讨论】:

      【解决方案2】:

      这对我有用

      $ SEVENZIP="C:/Program Files/7-Zip"
      
      $ read < <(cd "$SEVENZIP"; pwd)
      
      $ cd "$REPLY"
      

      【讨论】:

        【解决方案3】:

        你可以做两件事之一......

        • 添加一个命令来转换你的.bashrc文件中的路径,像这样......

        export JBOSS_HOME=$( cygpath "$JBOSS_HOME" )

        • 在引用变量时只需将变量放在引号之间,因为 Cygwin 理解 DOS 样式路径,即使它不喜欢它们。该命令对您失败的原因是路径中有一个空格,因此将其放在引号中将使路径被正确读取为一个 arg...

        cd "$JBOSS_HOME"

        请注意,在这种情况下,您可能仍会收到相同的“cygwin 警告”。为了消除这种情况,您需要按照警告建议将 nodosfilewarning 添加到您的 CYGWIN 变量中。你可以通过在你的 .bashrc 文件中添加它来做到这一点......

        export CYGWIN="${CYGWIN} nodosfilewarning"

        【讨论】:

          猜你喜欢
          • 2012-08-30
          • 2018-07-01
          • 2017-09-04
          • 2012-05-16
          • 1970-01-01
          • 1970-01-01
          • 2012-12-18
          • 1970-01-01
          • 2012-07-07
          相关资源
          最近更新 更多