我有一些窗口,使用Cygwin,试图通过.bashrc文件永久地设置JAVA_HOME。

.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

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'

我不确定我从教程中获取的命令是针对另一个系统的,还是我遗漏了一个步骤。或者空格导致我的命令不能正常运行。

我看过很多类似的问题,但我还没有找到一个问题完全有我的错误。


我的家乡路:

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

所以我认为文件应该放在正确的位置。


当前回答

可能你使用notepad++来创建/更新这个文件。

EOL(Edit->EOL Conversion)默认为Windows。

在notepad++中更改EOL转换

Edit -> EOL Conversion -> Unix (LF)

其他回答

我也有同样的问题。解决方案:我用pspad编辑器编辑文件,并给它一个unix格式(菜单-格式-> unix)

我相信您可以使用许多其他编辑器将此格式设置为您的文件

在EditPlus中,您可以从 文档→文件格式(CR/LF)→更改文件格式…菜单,然后选择Unix / Mac OS X单选按钮。

对于Emacs用户:

打开文件 m x set-buffer-file-coding-system 选择“unix”

这将把文件中的新字符更新为unix样式。更多关于Emacs中“换行表示”的信息可以在这里找到:

http://ergoemacs.org/emacs/emacs_line_ending_char.html

注意:如果您更喜欢从命令行执行上述步骤,则可以将其放入Emacs脚本中。

您还可以在bash调用中添加-o igncr选项,例如:

bash -x -o igncr script.sh

可能你使用notepad++来创建/更新这个文件。

EOL(Edit->EOL Conversion)默认为Windows。

在notepad++中更改EOL转换

Edit -> EOL Conversion -> Unix (LF)