我有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: 这dos2unix
Mac OS X上不存在命令。
查看这个答案用于使用不同工具的各种解决方案。
还有一个unix2dos
反向的命令:
它修改了Unix Newline字符,因此它们与Windows工具兼容。
如果您打开记事本的文件,并且所有行一起运行,请尝试unix2dos filename
。