我有一些窗口,使用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/

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


当前回答

尝试执行以下命令

vim .bashrc
:set ff=unix
:wq!

其他回答

崇高的文本

有了sublime你就去了

View -> Line ends -> (select)Unix . xml

然后保存文件。将修复此问题。

就这么简单!

对于使用notepad++ (v6.8.3检查)的WINDOWS (shell)用户,可以使用该选项更正特定的文件

编辑 -> EOL转换 -> Unix/OSX格式

然后再次保存文件。

编辑:在7.5.1版仍然有效(2017年8月29日)

编辑时间:2022年1月3日。因为VSCode提到了几次。进入VSCode中的设置并输入文件。在搜索字段中输入eol,并设置为\n (Unix格式)。请注意,这将更改所有文件的用户或工作区的此设置,这可能不是您想要的。YMMV。

对于Emacs用户:

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

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

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

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

对于那些没有安装dos2unix(也不想安装它)的用户:

删除导致此错误的\r字符:

sed -i 's/\r$//' filename

解释:

选项-i用于就地编辑,我们直接在输入文件中删除后面的\r。因此,要注意正确地输入图案。

我使用cygwin和Windows7,诀窍是不要把set -o igncr放入你的.bashrc,而是把整个SHELLOPTS放入你的环境变量在Windows下。(所以unix / cygwin…)我认为它不能从。bashrc工作,因为“滴已经被吸” 就像我们用德语说的那样。: -) 我的SHELLOPTS是这样的

braceexpand:emacs:hashall:histexpand:history:igncr:interactive-comments:monitor