首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >'\r':找不到命令- .bashrc / .bash_profile

'\r':找不到命令- .bashrc / .bash_profile
EN

Stack Overflow用户
提问于 2012-07-24 00:45:54
回答 18查看 400.1K关注 0票数 330

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

.bashrc:

代码语言:javascript
复制
export PATH="$JAVA_HOME/bin:$PATH"  
export JAVA_HOME=$JAVA_HOME:"/cygdrive/c/Program Files (x86)/Java/jdk1.7.0_05"

.bash_profile:

代码语言:javascript
复制
if [ -f ~/.bashrc ]; then
   source ~/.bashrc
fi

运行cygwin的

代码语言:javascript
复制
-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'

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

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

我的主路径:

代码语言:javascript
复制
$ echo $HOME
/cygdrive/c/Users/jhsu
$ echo ~
/cygdrive/c/Users/jhsu/

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

EN

回答 18

Stack Overflow用户

回答已采纳

发布于 2012-07-24 01:10:36

当Cygwin中的所有其他方法都失败时执行...

尝试对有问题的文件运行dos2unix命令。

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

-bash: '\r': command not found

Windows样式换行符可能会导致Cygwin中出现问题。

dos2unix命令修改换行符,使其与Unix / Cygwin兼容。

警告: dos2unix命令会就地修改文件,因此如有必要,请采取预防措施。

如果你需要保留原始文件,你应该先备份它。

Mac用户注意: dos2unix命令在Mac上不存在。

查看this answer,了解使用不同工具的各种解决方案。

还有一个unix2dos命令可以执行相反的操作:

它修改Unix换行符,使其与Windows工具兼容。

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

票数 402
EN

Stack Overflow用户

发布于 2015-10-03 01:42:36

对于那些没有安装dos2unix (并且不想安装它)的人:

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

代码语言:javascript
复制
sed -i 's/\r$//' filename

说明

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

票数 321
EN

Stack Overflow用户

发布于 2015-10-06 23:15:22

对于使用Notepad++WINDOWS (shell)用户(使用v6.8.3检查),您可以使用选项- Edit -> EOL conversion -> Unix/OSX format更正特定文件

并再次保存文件。

编辑:仍然适用于v7.5.1 (2017年8月29日)

票数 111
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11616835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档