如何让Cygwin准确读取我的Windows环境变量?

时间:2012-08-15 15:45:05

标签: windows cygwin environment-variables

我正在使用Windows XP和最新版本的Cygwin。如果我在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解释它,以便我不会得到“没有这样的文件或目录”警告?

2 个答案:

答案 0 :(得分:11)

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

  • 添加命令以转换.bashrc文件中的路径,如此...

export JBOSS_HOME=$( cygpath "$JBOSS_HOME" )

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

cd "$JBOSS_HOME"

请注意,在这种情况下,您可能仍会获得相同的“cygwin警告”。为了消除这种情况,您需要在警告建议中将nodosfilewarning添加到CYGWIN变量中。您可以在.bashrc文件中添加它...

export CYGWIN="${CYGWIN} nodosfilewarning"

答案 1 :(得分:2)

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

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

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

'#!/bin/bash'

export CYGWIN="${CYGWIN} nodosfilewarning"

echo hello