我有Windows使用Cygwin,试图设置JAVA_HOME永久通过我.bashrc文件。

.bashrc:

export PATH="$JAVA_HOME/bin:$PATH"  
export JAVA_HOME=$JAVA_HOME:"/cygdrive/c/Program Files (x86)/Java/jdk1.7.0_05"

.bash_profile:

if [ -f ~/.bashrc ]; then
   source ~/.bashrc
fi

running cygwin:

-bash: $'\377\376if': command not found
-bash: $'then\r': command not found
: No such file or directorysu//.bashrc
-bash: /cygdrive/c/Users/jhsu//.bash_profile: line 3: syntax error near unexpected token `fi'
-bash: /cygdrive/c/Users/jhsu//.bash_profile: line 3: `fi'

我不确定我是否从一个用于另一个系统的教程中收取命令,或者是否错过了一步。或Whitespace导致我的命令无法正常运行。

我查看了多个类似的问题,但是我还没有找到一个问题,因为这个问题准确地出现了我的错误。


我的家道:

$ echo $HOME
/cygdrive/c/Users/jhsu
$ echo ~
/cygdrive/c/Users/jhsu/

因此,我相信这些文件应放置在正确的位置。

答案

When all else fails in Cygwin…

尝试运行dos2unix在相关文件上命令。

当您看到这样的错误消息时,可能会有所帮助:

-bash: '\r': command not found

Windows Style Newline字符可能会引起Cygwin中的问题。

dos2unix命令修改了newline字符,因此它们是UNIX / CYGWIN兼容。

CAUTION: dos2unix命令修改文件到位,因此,如有必要,请采取预防措施。

如果需要保留原始文件,则应首先将其备份。

Note for Mac users:dos2unixMac OS X上不存在命令。

查看这个答案用于使用不同工具的各种解决方案。


还有一个unix2dos反向的命令:

它修改了Unix Newline字符,因此它们与Windows工具兼容。

如果您打开记事本的文件,并且所有行一起运行,请尝试unix2dos filename

来自: stackoverflow.com