在.bashrc 357 \ 273 \ 277中找不到Cygwin命令找不到坏字符

时间:2011-01-13 01:52:22

标签: bash cygwin

我是Cygwin的新手,我刚安装它并尝试设置一些简单的环境变量。但是,当我打开命令shell时,我收到错误“#357 \ 273 \ 277命令未找到”

我发现了一篇文章,讨论了问题是什么,以及如何“发现”隐藏的坏人: http://mblog.lib.umich.edu/DataDiscussions/archives/2010/01/index.html  但我不知道如何通过删除字符来解决问题(我使用od命令验证了我的.bashrc文件中的问题)。我试图将Notepad ++中的首选项视图更改为UTF-8和ANSI无效,但文件根本没有改变。

任何帮助将不胜感激......

6 个答案:

答案 0 :(得分:11)

据我所知,Notepad ++中保存为UTF-8和Cygwin的文件的一个常见问题是,默认情况下,Notepad ++会保存带有字节顺序标记的UTF-8编码文件。这个BOM字符与Cygwin等类似unix的环境不完全兼容。

如果您需要在这些文件中使用unicode字符,那么您可以尝试在Notepad ++中使用“UTF-8无BOM”编码,否则您可以使用ANSI或其他默认情况下不使用BOM的编码。

除编码外,请确保使用unix(LF)换行符保存文件。

答案 1 :(得分:8)

在将文件提供给cygwin bash之前,您可以先进行dos2unix转换,以注意CR LF之类的冲突。打开bash

name @ host~ $ dos2unix your_file.sh

答案 2 :(得分:1)

如果我将编码从UTF-8更改为ANSI(不是视图首选项),文件将更新并且特殊字符消失,修复“\ 357 \ 273 \ 277命令未找到“问题。万岁!

答案 3 :(得分:1)

剥离这些的一种方法是在Linux中使用vi。如果你说

vi filename

然后在vi中使用ed命令:se fileencoding = ASCII

这将剥夺奇怪的角色。

您可以通过保存文件然后在文件上运行od -c来确认这一点。

在: od -c changes.sql |头 0000000 357 273 277 I N S E R T I N T O`

在: od -c changes.sql |头 0000000 I N S E R T I N T O`c o n

答案 4 :(得分:0)

由于您已经在Cygwin之外编辑了.bashrc并使用了Windows编辑器,编辑器可能会弄乱您的换行符(即CR,R等)。您可以告诉Notepad ++显示隐藏的字符。我想你可以在它的设置中找到它。更改字符集是一回事,但能够看到隐藏字符是另一回事。

答案 5 :(得分:0)

This文章提到了一些可用于将文本文件从一种标准转换为另一种标准的程序。尝试在文件上使用dos2unix(在cygwin命令行中)。