【问题标题】:Cygwin command not found bad characters found in .bashrc 357\273\277Cygwin 命令未在 .bashrc 357\273\277 中找到坏字符
【发布时间】:2011-04-16 22:28:37
【问题描述】:

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

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

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

【问题讨论】:

    标签: bash cygwin


    【解决方案1】:

    据我所知,在 Notepad++ 中保存为 UTF-8 和 Cygwin 的文件的一个常见问题是 Notepad++ 默认使用 字节顺序标记 保存 UTF-8 编码文件。这个BOM 字符与 Cygwin 等类 unix 环境不太兼容。

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

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

    【讨论】:

      【解决方案2】:

      在将文件输入 cygwin bash 之前,您可以先进行 dos2unix 转换以处理可能的冲突,例如 CR LF。打开 bash

      名称@主机 ~ $ dos2unix your_file.sh

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

          vi 文件名

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

          这将去掉古怪的字符。

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

          之前: od -c 更改.sql |头 0000000 357 273 277 I N S E R T I N T O `

          之后: od -c 更改.sql |头 0000000 I N S E R T I N T O `c o n

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              【解决方案6】:

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2011-06-17
                • 2021-08-31
                • 1970-01-01
                • 2021-09-16
                • 1970-01-01
                • 2014-06-12
                相关资源
                最近更新 更多