我正在使用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解释它,这样我就不会收到"没有这样的文件或目录"警告?
你可以做以下两件事之一...
- 添加一个命令来转换 .bashrc 文件中的路径,如下所示...
export JBOSS_HOME=$( cygpath "$JBOSS_HOME" )
或
- 引用变量时只需将变量放在引号之间,因为 Cygwin 理解 DOS 样式路径,即使它不喜欢它们。该命令对您失败的原因是路径中有一个空格,因此将其放在引号中将使路径正确读取为一个参数...
cd "$JBOSS_HOME"
请注意,在这种情况下,您可能仍会收到相同的"cygwin 警告"。为了使这种情况消失,您需要按照警告的建议向CYGWIN var添加nodosfilewarning
。您可以通过将其添加到您的 .bashrc 文件中来做到这一点......
export CYGWIN="${CYGWIN} nodosfilewarning"
我正在使用带有ShellED插件的Eclispse,
我收到了相同的通知,不知道准确的配置,
我只是将导出值添加到脚本中
'#!/bin/bash'
export CYGWIN="${CYGWIN} nodosfilewarning"
echo hello
我有用
$ SEVENZIP="C:/Program Files/7-Zip"
$ read < <(cd "$SEVENZIP"; pwd)
$ cd "$REPLY"