12

我正在使用带有最新版本 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 解释它,这样我就不会收到“没有这样的文件或目录”警告?

4

3 回答 3

11

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

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

export JBOSS_HOME=$( cygpath "$JBOSS_HOME" )

或者

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

cd "$JBOSS_HOME"

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

export CYGWIN="${CYGWIN} nodosfilewarning"

于 2012-08-15T17:41:11.587 回答
2

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

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

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

'#!/bin/bash'

export CYGWIN="${CYGWIN} nodosfilewarning"

echo hello
于 2013-05-28T08:40:29.807 回答
0

这对我有用

$ SEVENZIP="C:/Program Files/7-Zip"

$ read < <(cd "$SEVENZIP"; pwd)

$ cd "$REPLY"
于 2012-09-07T15:50:19.293 回答