Команда Cygwin не нашла плохих символов, найденных в .bashrc 357 \ 273 \ 277 - PullRequest
6 голосов
/ 13 января 2011

Я новичок в Cygwin, я только что установил его и попытался установить несколько простых переменных окружения. Однако когда я открываю командную оболочку, я получаю сообщение об ошибке "# 357 \ 273 \ 277 команда не найдена"

Я нашел статью, в которой обсуждается, в чем проблема и как «обнаружить» скрытого плохого персонажа: http://mblog.lib.umich.edu/DataDiscussions/archives/2010/01/index.html но я не знаю, как решить проблему, удалив символ (который я проверил, была проблема в моем файле .bashrc с помощью команды od). Я попытался изменить представление предпочтений в Notepad ++ на UTF-8 и ANSI, но безрезультатно, но файл не был изменен вообще.

Любая помощь будет оценена ...

Ответы [ 6 ]

11 голосов
/ 16 января 2011

Насколько я знаю, общая проблема с файлами, сохраненными в Notepad ++ как UTF-8 и Cygwin, заключается в том, что Notepad ++ сохраняет файлы в кодировке UTF-8 с отметкой порядка байтов по умолчанию. Этот символ BOM не совсем совместим с Unix-подобными средами, такими как Cygwin.

Если вам нужны символы Unicode в этих файлах, то вы можете попробовать использовать кодировку «UTF-8 без BOM» в Notepad ++, в противном случае вы можете использовать ANSI или другие кодировки, которые по умолчанию не используют BOM.

Помимо кодировки, убедитесь, что файл сохранен с использованием переносов строки Unix (LF).

8 голосов
/ 13 января 2011

Перед подачей файлов в cygwin bash вы можете сначала выполнить преобразование dos2unix, чтобы устранить возможные конфликты, такие как CR LF.Откройте bash

name @ host ~ $ dos2unix your_file.sh

1 голос
/ 16 апреля 2011

Один из способов удалить их в Linux - использовать vi. Если вы скажете

vi имя файла

и затем в 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 И Н С Е Р Т И Н Т О`КОН

1 голос
/ 13 января 2011

Похоже, если я изменю кодировку с UTF-8 на ANSI (не в настройках просмотра), файл обновится, а специальные символы исчезнут, исправив "\ 357 \ 273 \ 277 команда не найдена Ура!

0 голосов
/ 13 января 2011

В этой статье упоминается несколько программ, которые можно использовать для преобразования текстовых файлов из одного стандарта в другой. Попробуйте использовать dos2unix для файла (в командной строке cygwin).

0 голосов
/ 13 января 2011

Так как вы отредактировали ваш .bashrc вне Cygwin и использовали редактор Windows, редактор, возможно, испортил ваш символ новой строки (например, CR, R и т. Д.). Вы можете указать Notepad ++ показывать скрытые символы. Я думаю, вы можете найти его в настройках. Изменение кодировок - это одно, а возможность видеть скрытые символы - другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...