3

Я установил CygWin на Windows 7. Используя Блокнот, я отредактировал файл ~/.bash_profile, добавив его в переменную PATH…

PATH="${PATH}:/cygdrive/c/apache-ant-1.8.2/bin"

Теперь, когда я подключаюсь к моей машине с Windows, я получаю эту ошибку ...

-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: /home/dev/.bash_profile: line 39: syntax error: unexpected end of file

и мой путь не установлен. Кто-нибудь знает, как я могу это исправить?

3 ответа3

6

Как уже упоминалось, Windows использует \n\r качестве разделителя строк. Теперь, когда вы получили \r с в вашем .bash_profile однако, вы можете использовать утилиту dos2unix , чтобы удалить их.

2

Вероятно, в блокноте было добавлено $'\r' , т.е. Символы CR - как обычно в Windows, в качестве разделителя строк используется CRLF.

Решением будет использование другого редактора, который способен сохранять окончания строк такими, как они есть, например, vim для Windows или Notepad2.

2

В зависимости от среды, которую вы используете, вы можете столкнуться со сценариями, содержащими CRLF, т.е. при использовании Visual SourceSafe, Perforce для Windows и т.д. Для хранения ваших файлов. Однако, у bash есть универсальный способ обойти эту проблему:

export SHELLOPTS
set -o igncr

Если вы поместите это в начало вашего .bash_profile или другого сценария запуска, который вы можете использовать, у вас не возникнет проблем, поскольку последовательности CRLF перед первой командой в вашем сценарии запуска не помешают.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .